home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 …ember: Reference Library / Dev.CD Dec 94.toast / Technical Documentation / Mac Tech Notes (DocViewer) / PT • Platforms & Tools / PT24 MacPaint Doc Format < prev    next >
MacBinary  |  1994-10-19  |  32.1 KB  |  [ONLN/HLX2]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
100% file MacBinary II, inited, Fri Oct 14 08:38:38 1994, modified Wed Oct 19 10:06:24 1994, creator 'HLX2', type 'ONLN', 30592 bytes "PT24 MacPaint Doc Format" , at 0x7800 2050 bytes resource default (weak)
99% file data default
100% TrID MacBinary 2 default (weak)
100% dexmagic Picasso 64 Image default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[ONLN]
macFileCreator[HLX2]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 18 50 54 32 34 20 4d | 61 63 50 61 69 6e 74 20 |..PT24 M|acPaint |
|00000010| 44 6f 63 20 46 6f 72 6d | 61 74 00 00 00 00 00 00 |Doc Form|at......|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 4f 4e 4c 4e 48 4c 58 | 32 01 00 00 00 00 00 00 |.ONLNHLX|2.......|
|00000050| 00 00 00 00 00 77 80 00 | 00 08 02 aa c4 2c 4e aa |.....w..|.....,N.|
|00000060| ca d8 60 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..`.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 8b 3b 00 00 |........|.....;..|
|00000080| 50 54 20 32 34 20 2d 20 | 4d 61 63 50 61 69 6e 74 |PT 24 - |MacPaint|
|00000090| 20 44 6f 63 75 6d 65 6e | 74 20 46 6f 72 6d 61 74 | Documen|t Format|
|000000a0| 0d 50 6c 61 74 66 6f 72 | 6d 73 20 26 20 54 6f 6f |.Platfor|ms & Too|
|000000b0| 6c 73 09 0d 52 65 76 69 | 73 65 64 20 62 79 3a 09 |ls..Revi|sed by:.|
|000000c0| 4a 69 6d 20 52 65 65 6b | 65 73 09 4a 75 6e 65 20 |Jim Reek|es.June |
|000000d0| 31 39 38 39 0d 57 72 69 | 74 74 65 6e 20 62 79 3a |1989.Wri|tten by:|
|000000e0| 09 42 69 6c 6c 20 41 74 | 6b 69 6e 73 6f 6e 09 31 |.Bill At|kinson.1|
|000000f0| 39 38 33 0d 54 68 69 73 | 20 54 65 63 68 6e 69 63 |983.This| Technic|
|00000100| 61 6c 20 4e 6f 74 65 20 | 64 65 73 63 72 69 62 65 |al Note |describe|
|00000110| 73 20 74 68 65 20 69 6e | 74 65 72 6e 61 6c 20 66 |s the in|ternal f|
|00000120| 6f 72 6d 61 74 20 6f 66 | 20 61 20 4d 61 63 50 61 |ormat of| a MacPa|
|00000130| 69 6e 74 a8 20 64 6f 63 | 75 6d 65 6e 74 2c 20 77 |int. doc|ument, w|
|00000140| 68 69 63 68 20 69 73 20 | 61 20 73 74 61 6e 64 61 |hich is |a standa|
|00000150| 72 64 20 75 73 65 64 20 | 62 79 20 6d 61 6e 79 20 |rd used |by many |
|00000160| 6f 74 68 65 72 20 70 72 | 6f 67 72 61 6d 73 2e 20 |other pr|ograms. |
|00000170| 20 54 68 69 73 20 64 65 | 73 63 72 69 70 74 69 6f | This de|scriptio|
|00000180| 6e 20 69 73 20 74 68 65 | 20 73 61 6d 65 20 61 73 |n is the| same as|
|00000190| 20 74 68 61 74 20 66 6f | 75 6e 64 20 69 6e 20 74 | that fo|und in t|
|000001a0| 68 65 20 d2 4d 61 63 69 | 6e 74 6f 73 68 20 4d 69 |he .Maci|ntosh Mi|
|000001b0| 73 63 65 6c 6c 61 6e 65 | 6f 75 73 d3 20 73 65 63 |scellane|ous. sec|
|000001c0| 74 69 6f 6e 20 6f 66 20 | 65 61 72 6c 79 20 49 6e |tion of |early In|
|000001d0| 73 69 64 65 20 4d 61 63 | 69 6e 74 6f 73 68 20 76 |side Mac|intosh v|
|000001e0| 65 72 73 69 6f 6e 73 2e | 0d 43 68 61 6e 67 65 73 |ersions.|.Changes|
|000001f0| 20 73 69 6e 63 65 20 4f | 63 74 6f 62 65 72 20 31 | since O|ctober 1|
|00000200| 39 38 38 3a 20 20 46 69 | 78 65 64 20 62 75 67 73 |988: Fi|xed bugs|
|00000210| 20 69 6e 20 74 68 65 20 | 65 78 61 6d 70 6c 65 20 | in the |example |
|00000220| 63 6f 64 65 2e 0d 4d 61 | 63 50 61 69 6e 74 20 64 |code..Ma|cPaint d|
|00000230| 6f 63 75 6d 65 6e 74 73 | 20 61 72 65 20 65 61 73 |ocuments| are eas|
|00000240| 79 20 74 6f 20 72 65 61 | 64 20 61 6e 64 20 77 72 |y to rea|d and wr|
|00000250| 69 74 65 2c 20 61 6e 64 | 20 74 68 65 79 20 68 61 |ite, and| they ha|
|00000260| 76 65 20 62 65 63 6f 6d | 65 20 61 20 73 74 61 6e |ve becom|e a stan|
|00000270| 64 61 72 64 20 69 6e 74 | 65 72 63 68 61 6e 67 65 |dard int|erchange|
|00000280| 20 66 6f 72 6d 61 74 20 | 66 6f 72 20 66 75 6c 6c | format |for full|
|00000290| d0 70 61 67 65 20 69 6d | 61 67 65 73 20 6f 6e 20 |.page im|ages on |
|000002a0| 74 68 65 20 4d 61 63 69 | 6e 74 6f 73 68 2e 20 20 |the Maci|ntosh. |
|000002b0| 54 68 69 73 20 4e 6f 74 | 65 20 64 65 73 63 72 69 |This Not|e descri|
|000002c0| 62 65 73 20 74 68 65 20 | 4d 61 63 50 61 69 6e 74 |bes the |MacPaint|
|000002d0| 20 69 6e 74 65 72 6e 61 | 6c 20 64 6f 63 75 6d 65 | interna|l docume|
|000002e0| 6e 74 20 66 6f 72 6d 61 | 74 20 74 6f 20 68 65 6c |nt forma|t to hel|
|000002f0| 70 20 64 65 76 65 6c 6f | 70 65 72 73 20 67 65 6e |p develo|pers gen|
|00000300| 65 72 61 74 65 20 61 6e | 64 20 69 6e 74 65 72 70 |erate an|d interp|
|00000310| 72 65 74 20 66 69 6c 65 | 73 20 69 6e 20 74 68 69 |ret file|s in thi|
|00000320| 73 20 66 6f 72 6d 61 74 | 2e 0d 4d 61 63 50 61 69 |s format|..MacPai|
|00000330| 6e 74 20 64 6f 63 75 6d | 65 6e 74 73 20 68 61 76 |nt docum|ents hav|
|00000340| 65 20 61 20 66 69 6c 65 | 20 74 79 70 65 20 6f 66 |e a file| type of|
|00000350| 20 d2 50 4e 54 47 2c d3 | 20 61 6e 64 20 73 69 6e | .PNTG,.| and sin|
|00000360| 63 65 20 74 68 65 79 20 | 75 73 65 20 6f 6e 6c 79 |ce they |use only|
|00000370| 20 74 68 65 20 64 61 74 | 61 20 66 6f 72 6b 2c 20 | the dat|a fork, |
|00000380| 79 6f 75 20 63 61 6e 20 | 69 67 6e 6f 72 65 20 74 |you can |ignore t|
|00000390| 68 65 20 72 65 73 6f 75 | 72 63 65 20 66 6f 72 6b |he resou|rce fork|
|000003a0| 2e 20 20 54 68 65 20 64 | 61 74 61 20 66 6f 72 6b |. The d|ata fork|
|000003b0| 20 63 6f 6e 74 61 69 6e | 73 20 61 20 35 31 32 d0 | contain|s a 512.|
|000003c0| 62 79 74 65 20 68 65 61 | 64 65 72 20 66 6f 6c 6c |byte hea|der foll|
|000003d0| 6f 77 65 64 20 62 79 20 | 63 6f 6d 70 72 65 73 73 |owed by |compress|
|000003e0| 65 64 20 64 61 74 61 20 | 77 68 69 63 68 20 72 65 |ed data |which re|
|000003f0| 70 72 65 73 65 6e 74 73 | 20 61 20 73 69 6e 67 6c |presents| a singl|
|00000400| 65 20 62 69 74 6d 61 70 | 20 28 35 37 36 20 70 69 |e bitmap| (576 pi|
|00000410| 78 65 6c 73 20 77 69 64 | 65 20 62 79 20 37 32 30 |xels wid|e by 720|
|00000420| 20 70 69 78 65 6c 73 20 | 74 61 6c 6c 29 2e 20 20 | pixels |tall). |
|00000430| 41 74 20 61 20 72 65 73 | 6f 6c 75 74 69 6f 6e 20 |At a res|olution |
|00000440| 6f 66 20 37 32 20 70 69 | 78 65 6c 73 20 70 65 72 |of 72 pi|xels per|
|00000450| 20 69 6e 63 68 2c 20 74 | 68 69 73 20 62 69 74 6d | inch, t|his bitm|
|00000460| 61 70 20 6f 63 63 75 70 | 69 65 73 20 74 68 65 20 |ap occup|ies the |
|00000470| 66 75 6c 6c 20 38 20 69 | 6e 63 68 20 62 79 20 31 |full 8 i|nch by 1|
|00000480| 30 20 69 6e 63 68 20 70 | 72 69 6e 74 61 62 6c 65 |0 inch p|rintable|
|00000490| 20 61 72 65 61 20 6f 66 | 20 61 20 73 74 61 6e 64 | area of| a stand|
|000004a0| 61 72 64 20 49 6d 61 67 | 65 57 72 69 74 65 72 20 |ard Imag|eWriter |
|000004b0| 70 72 69 6e 74 65 72 20 | 70 61 67 65 2e 0d 48 65 |printer |page..He|
|000004c0| 61 64 65 72 0d 54 68 65 | 20 66 69 72 73 74 20 35 |ader.The| first 5|
|000004d0| 31 32 20 62 79 74 65 73 | 20 6f 66 20 74 68 65 20 |12 bytes| of the |
|000004e0| 64 6f 63 75 6d 65 6e 74 | 20 66 6f 72 6d 20 61 20 |document| form a |
|000004f0| 68 65 61 64 65 72 20 6f | 66 20 74 68 65 20 66 6f |header o|f the fo|
|00000500| 6c 6c 6f 77 69 6e 67 20 | 66 6f 72 6d 61 74 3a 0d |llowing |format:.|
|00000510| a5 09 34 d0 62 79 74 65 | 20 76 65 72 73 69 6f 6e |..4.byte| version|
|00000520| 20 6e 75 6d 62 65 72 20 | 28 64 65 66 61 75 6c 74 | number |(default|
|00000530| 20 3d 20 32 29 0d a5 09 | 33 38 2a 38 20 3d 20 33 | = 2)...|38*8 = 3|
|00000540| 30 34 20 62 79 74 65 73 | 20 6f 66 20 70 61 74 74 |04 bytes| of patt|
|00000550| 65 72 6e 73 0d a5 09 32 | 30 34 20 75 6e 75 73 65 |erns...2|04 unuse|
|00000560| 64 20 62 79 74 65 73 20 | 28 72 65 73 65 72 76 65 |d bytes |(reserve|
|00000570| 64 20 66 6f 72 20 66 75 | 74 75 72 65 20 65 78 70 |d for fu|ture exp|
|00000580| 61 6e 73 69 6f 6e 29 0d | 41 73 20 61 20 50 61 73 |ansion).|As a Pas|
|00000590| 63 61 6c 20 72 65 63 6f | 72 64 2c 20 74 68 65 20 |cal reco|rd, the |
|000005a0| 64 6f 63 75 6d 65 6e 74 | 20 66 6f 72 6d 61 74 20 |document| format |
|000005b0| 63 6f 75 6c 64 20 6c 6f | 6f 6b 20 6c 69 6b 65 20 |could lo|ok like |
|000005c0| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 3a 0d 09 |the foll|owing:..|
|000005d0| 4d 50 48 65 61 64 65 72 | 20 3d 20 52 45 43 4f 52 |MPHeader| = RECOR|
|000005e0| 44 0d 09 09 56 65 72 73 | 69 6f 6e 3a 09 4c 4f 4e |D...Vers|ion:.LON|
|000005f0| 47 49 4e 54 3b 0d 09 09 | 50 61 74 41 72 72 61 79 |GINT;...|PatArray|
|00000600| 3a 09 41 52 52 41 59 20 | 5b 31 2e 2e 33 38 5d 20 |:.ARRAY |[1..38] |
|00000610| 6f 66 20 50 61 74 74 65 | 72 6e 3b 0d 09 09 46 75 |of Patte|rn;...Fu|
|00000620| 74 75 72 65 3a 09 50 41 | 43 4b 45 44 20 41 52 52 |ture:.PA|CKED ARR|
|00000630| 41 59 20 5b 31 2e 2e 32 | 30 34 5d 20 6f 66 20 53 |AY [1..2|04] of S|
|00000640| 69 67 6e 65 64 42 79 74 | 65 3b 0d 09 45 4e 44 3b |ignedByt|e;..END;|
|00000650| 0d 49 66 20 74 68 65 20 | 76 65 72 73 69 6f 6e 20 |.If the |version |
|00000660| 6e 75 6d 62 65 72 20 69 | 73 20 7a 65 72 6f 2c 20 |number i|s zero, |
|00000670| 74 68 65 20 64 6f 63 75 | 6d 65 6e 74 20 75 73 65 |the docu|ment use|
|00000680| 73 20 64 65 66 61 75 6c | 74 20 70 61 74 74 65 72 |s defaul|t patter|
|00000690| 6e 73 2c 20 73 6f 20 79 | 6f 75 20 63 61 6e 20 69 |ns, so y|ou can i|
|000006a0| 67 6e 6f 72 65 20 74 68 | 65 20 72 65 73 74 20 6f |gnore th|e rest o|
|000006b0| 66 20 74 68 65 20 68 65 | 61 64 65 72 20 62 6c 6f |f the he|ader blo|
|000006c0| 63 6b 2c 20 61 6e 64 20 | 69 66 20 79 6f 75 72 20 |ck, and |if your |
|000006d0| 70 72 6f 67 72 61 6d 20 | 67 65 6e 65 72 61 74 65 |program |generate|
|000006e0| 73 20 4d 61 63 50 61 69 | 6e 74 20 64 6f 63 75 6d |s MacPai|nt docum|
|000006f0| 65 6e 74 73 2c 20 79 6f | 75 20 63 61 6e 20 77 72 |ents, yo|u can wr|
|00000700| 69 74 65 20 35 31 32 20 | 62 79 74 65 73 20 6f 66 |ite 512 |bytes of|
|00000710| 20 7a 65 72 6f 20 66 6f | 72 20 74 68 65 20 64 6f | zero fo|r the do|
|00000720| 63 75 6d 65 6e 74 20 68 | 65 61 64 65 72 2e 20 20 |cument h|eader. |
|00000730| 4d 6f 73 74 20 70 72 6f | 67 72 61 6d 73 20 77 68 |Most pro|grams wh|
|00000740| 69 63 68 20 72 65 61 64 | 20 4d 61 63 50 61 69 6e |ich read| MacPain|
|00000750| 74 20 64 6f 63 75 6d 65 | 6e 74 73 20 63 61 6e 20 |t docume|nts can |
|00000760| 73 6b 69 70 20 74 68 65 | 20 68 65 61 64 65 72 20 |skip the| header |
|00000770| 77 68 65 6e 20 72 65 61 | 64 69 6e 67 2e 0d 42 69 |when rea|ding..Bi|
|00000780| 74 6d 61 70 0d 46 6f 6c | 6c 6f 77 69 6e 67 20 74 |tmap.Fol|lowing t|
|00000790| 68 65 20 68 65 61 64 65 | 72 20 61 72 65 20 37 32 |he heade|r are 72|
|000007a0| 30 20 63 6f 6d 70 72 65 | 73 73 65 64 20 73 63 61 |0 compre|ssed sca|
|000007b0| 6e 20 6c 69 6e 65 73 20 | 6f 66 20 64 61 74 61 20 |n lines |of data |
|000007c0| 77 68 69 63 68 20 66 6f | 72 6d 20 74 68 65 20 35 |which fo|rm the 5|
|000007d0| 37 36 20 70 69 78 65 6c | 20 77 69 64 65 20 62 79 |76 pixel| wide by|
|000007e0| 20 37 32 30 20 70 69 78 | 65 6c 20 74 61 6c 6c 20 | 720 pix|el tall |
|000007f0| 62 69 74 6d 61 70 2e 20 | 20 57 69 74 68 6f 75 74 |bitmap. | Without|
|00000800| 20 63 6f 6d 70 72 65 73 | 73 69 6f 6e 2c 20 74 68 | compres|sion, th|
|00000810| 69 73 20 62 69 74 6d 61 | 70 20 77 6f 75 6c 64 20 |is bitma|p would |
|00000820| 6f 63 63 75 70 79 20 35 | 31 2c 38 34 30 20 62 79 |occupy 5|1,840 by|
|00000830| 74 65 73 20 61 6e 64 20 | 63 68 65 77 20 75 70 20 |tes and |chew up |
|00000840| 64 69 73 6b 20 73 70 61 | 63 65 20 70 72 65 74 74 |disk spa|ce prett|
|00000850| 79 20 66 61 73 74 3b 20 | 74 79 70 69 63 61 6c 20 |y fast; |typical |
|00000860| 4d 61 63 50 61 69 6e 74 | 20 64 6f 63 75 6d 65 6e |MacPaint| documen|
|00000870| 74 73 20 63 6f 6d 70 72 | 65 73 73 20 74 6f 20 61 |ts compr|ess to a|
|00000880| 62 6f 75 74 20 31 30 4b | 20 75 73 69 6e 67 20 74 |bout 10K| using t|
|00000890| 68 65 20 5f 50 61 63 6b | 42 69 74 73 20 70 72 6f |he _Pack|Bits pro|
|000008a0| 63 65 64 75 72 65 20 74 | 6f 20 63 6f 6d 70 72 65 |cedure t|o compre|
|000008b0| 73 73 20 72 75 6e 73 20 | 6f 66 20 65 71 75 61 6c |ss runs |of equal|
|000008c0| 20 62 79 74 65 73 20 77 | 69 74 68 69 6e 20 65 61 | bytes w|ithin ea|
|000008d0| 63 68 20 73 63 61 6e 20 | 6c 69 6e 65 2e 20 20 54 |ch scan |line. T|
|000008e0| 68 65 20 62 69 74 6d 61 | 70 20 70 61 72 74 20 6f |he bitma|p part o|
|000008f0| 66 20 61 20 4d 61 63 50 | 61 69 6e 74 20 64 6f 63 |f a MacP|aint doc|
|00000900| 75 6d 65 6e 74 20 69 73 | 20 73 69 6d 70 6c 79 20 |ument is| simply |
|00000910| 74 68 65 20 6f 75 74 70 | 75 74 20 6f 66 20 5f 50 |the outp|ut of _P|
|00000920| 61 63 6b 42 69 74 73 20 | 63 61 6c 6c 65 64 20 37 |ackBits |called 7|
|00000930| 32 30 20 74 69 6d 65 73 | 2c 20 77 69 74 68 20 37 |20 times|, with 7|
|00000940| 32 20 62 79 74 65 73 20 | 6f 66 20 69 6e 70 75 74 |2 bytes |of input|
|00000950| 20 65 61 63 68 20 74 69 | 6d 65 2e 0d 54 6f 20 64 | each ti|me..To d|
|00000960| 65 74 65 72 6d 69 6e 65 | 20 74 68 65 20 6d 61 78 |etermine| the max|
|00000970| 69 6d 75 6d 20 73 69 7a | 65 20 6f 66 20 61 20 4d |imum siz|e of a M|
|00000980| 61 63 50 61 69 6e 74 20 | 66 69 6c 65 2c 20 69 74 |acPaint |file, it|
|00000990| 20 69 73 20 77 6f 72 74 | 68 20 6e 6f 74 69 6e 67 | is wort|h noting|
|000009a0| 20 77 68 61 74 20 49 6e | 73 69 64 65 20 4d 61 63 | what In|side Mac|
|000009b0| 69 6e 74 6f 73 68 20 73 | 61 79 73 20 61 62 6f 75 |intosh s|ays abou|
|000009c0| 74 20 5f 50 61 63 6b 42 | 69 74 73 3a 0d d2 54 68 |t _PackB|its:..Th|
|000009d0| 65 20 77 6f 72 73 74 20 | 63 61 73 65 20 77 6f 75 |e worst |case wou|
|000009e0| 6c 64 20 62 65 20 77 68 | 65 6e 20 5f 50 61 63 6b |ld be wh|en _Pack|
|000009f0| 42 69 74 73 20 61 64 64 | 73 20 6f 6e 65 20 62 79 |Bits add|s one by|
|00000a00| 74 65 20 74 6f 20 74 68 | 65 20 72 6f 77 20 6f 66 |te to th|e row of|
|00000a10| 20 62 79 74 65 73 20 77 | 68 65 6e 20 70 61 63 6b | bytes w|hen pack|
|00000a20| 69 6e 67 2e d3 0d 49 66 | 20 77 65 20 69 6e 63 6c |ing...If| we incl|
|00000a30| 75 64 65 20 61 6e 20 65 | 78 74 72 61 20 35 31 32 |ude an e|xtra 512|
|00000a40| 20 62 79 74 65 73 20 66 | 6f 72 20 74 68 65 20 66 | bytes f|or the f|
|00000a50| 69 6c 65 20 68 65 61 64 | 65 72 20 69 6e 66 6f 72 |ile head|er infor|
|00000a60| 6d 61 74 69 6f 6e 20 74 | 6f 20 74 68 65 20 73 69 |mation t|o the si|
|00000a70| 7a 65 20 6f 66 20 61 6e | 20 75 6e 63 6f 6d 70 72 |ze of an| uncompr|
|00000a80| 65 73 73 65 64 20 62 69 | 74 6d 61 70 20 28 35 31 |essed bi|tmap (51|
|00000a90| 2c 38 34 30 29 2c 20 74 | 68 65 6e 20 74 68 65 20 |,840), t|hen the |
|00000aa0| 74 6f 74 61 6c 20 6e 75 | 6d 62 65 72 20 6f 66 20 |total nu|mber of |
|00000ab0| 62 79 74 65 73 20 77 6f | 75 6c 64 20 62 65 20 35 |bytes wo|uld be 5|
|00000ac0| 32 2c 33 35 32 2e 20 20 | 49 66 20 77 65 20 74 61 |2,352. |If we ta|
|00000ad0| 6b 65 20 69 6e 74 6f 20 | 61 63 63 6f 75 6e 74 20 |ke into |account |
|00000ae0| 74 68 65 20 65 78 74 72 | 61 20 37 32 30 20 d2 70 |the extr|a 720 .p|
|00000af0| 6f 74 65 6e 74 69 61 6c | d3 20 62 79 74 65 73 20 |otential|. bytes |
|00000b00| 28 6f 6e 65 20 66 6f 72 | 20 65 61 63 68 20 72 6f |(one for| each ro|
|00000b10| 77 29 20 74 6f 20 74 68 | 65 20 70 72 65 76 69 6f |w) to th|e previo|
|00000b20| 75 73 20 74 6f 74 61 6c | 2c 20 74 68 65 20 6d 61 |us total|, the ma|
|00000b30| 78 69 6d 75 6d 20 73 69 | 7a 65 20 6f 66 20 61 20 |ximum si|ze of a |
|00000b40| 4d 61 63 50 61 69 6e 74 | 20 66 69 6c 65 20 62 65 |MacPaint| file be|
|00000b50| 63 6f 6d 65 73 20 35 33 | 2c 30 37 32 20 62 79 74 |comes 53|,072 byt|
|00000b60| 65 73 2e 0d 52 65 61 64 | 69 6e 67 20 53 61 6d 70 |es..Read|ing Samp|
|00000b70| 6c 65 0d 09 50 52 4f 43 | 45 44 55 52 45 20 52 65 |le..PROC|EDURE Re|
|00000b80| 61 64 4d 50 46 69 6c 65 | 3b 0d 09 7b 20 54 68 69 |adMPFile|;..{ Thi|
|00000b90| 73 20 69 73 20 61 20 73 | 6d 61 6c 6c 20 65 78 61 |s is a s|mall exa|
|00000ba0| 6d 70 6c 65 20 70 72 6f | 63 65 64 75 72 65 20 77 |mple pro|cedure w|
|00000bb0| 72 69 74 74 65 6e 20 69 | 6e 20 50 61 73 63 61 6c |ritten i|n Pascal|
|00000bc0| 20 74 68 61 74 20 64 65 | 6d 6f 6e 73 74 72 61 74 | that de|monstrat|
|00000bd0| 65 73 0d 09 20 20 68 6f | 77 20 74 6f 20 72 65 61 |es.. ho|w to rea|
|00000be0| 64 20 4d 61 63 50 61 69 | 6e 74 20 66 69 6c 65 73 |d MacPai|nt files|
|00000bf0| 2e 20 41 73 20 61 20 66 | 69 6e 61 6c 20 73 74 65 |. As a f|inal ste|
|00000c00| 70 2c 20 69 74 20 74 61 | 6b 65 73 20 74 68 65 20 |p, it ta|kes the |
|00000c10| 64 61 74 61 20 74 68 61 | 74 0d 09 20 20 77 61 73 |data tha|t.. was|
|00000c20| 20 72 65 61 64 20 61 6e | 64 20 64 69 73 70 6c 61 | read an|d displa|
|00000c30| 79 73 20 69 74 20 6f 6e | 20 74 68 65 20 73 63 72 |ys it on| the scr|
|00000c40| 65 65 6e 20 74 6f 20 73 | 68 6f 77 20 74 68 61 74 |een to s|how that|
|00000c50| 20 69 74 20 77 6f 72 6b | 65 64 2e 0d 09 20 20 43 | it work|ed... C|
|00000c60| 61 76 65 61 74 3a 20 54 | 68 69 73 20 69 73 20 6e |aveat: T|his is n|
|00000c70| 6f 74 20 69 6e 74 65 6e | 64 65 64 20 74 6f 20 62 |ot inten|ded to b|
|00000c80| 65 20 61 6e 20 65 78 61 | 6d 70 6c 65 20 6f 66 20 |e an exa|mple of |
|00000c90| 67 6f 6f 64 20 70 72 6f | 67 72 61 6d 6d 69 6e 67 |good pro|gramming|
|00000ca0| 0d 09 20 20 70 72 61 63 | 74 69 63 65 2c 20 69 6e |.. prac|tice, in|
|00000cb0| 20 74 68 61 74 20 74 68 | 65 20 70 6f 73 73 69 62 | that th|e possib|
|00000cc0| 6c 65 20 65 72 72 6f 72 | 73 20 6d 65 72 65 6c 79 |le error|s merely|
|00000cd0| 20 63 61 75 73 65 20 74 | 68 65 20 70 72 6f 67 72 | cause t|he progr|
|00000ce0| 61 6d 20 74 6f 20 65 78 | 69 74 2e 0d 09 20 20 54 |am to ex|it... T|
|00000cf0| 68 69 73 20 69 73 20 56 | 45 52 59 20 75 6e 69 6e |his is V|ERY unin|
|00000d00| 66 6f 72 6d 61 74 69 76 | 65 2c 20 61 6e 64 20 74 |formativ|e, and t|
|00000d10| 68 65 72 65 20 73 68 6f | 75 6c 64 20 62 65 20 73 |here sho|uld be s|
|00000d20| 6f 6d 65 20 73 6f 72 74 | 20 6f 66 20 65 72 72 6f |ome sort| of erro|
|00000d30| 72 20 68 61 6e 64 6c 65 | 72 0d 09 20 20 74 6f 20 |r handle|r.. to |
|00000d40| 65 78 70 6c 61 69 6e 20 | 77 68 61 74 20 68 61 70 |explain |what hap|
|00000d50| 70 65 6e 65 64 2e 20 46 | 6f 72 20 73 69 6d 70 6c |pened. F|or simpl|
|00000d60| 69 63 69 74 79 2c 20 61 | 6e 64 20 74 68 75 73 20 |icity, a|nd thus |
|00000d70| 63 6c 61 72 69 74 79 2c | 20 74 68 6f 73 65 20 74 |clarity,| those t|
|00000d80| 79 70 65 73 0d 09 20 20 | 6f 66 20 74 68 69 6e 67 |ypes.. |of thing|
|00000d90| 73 20 77 65 72 65 20 64 | 65 6c 69 62 65 72 61 74 |s were d|eliberat|
|00000da0| 65 6c 79 20 6e 6f 74 20 | 69 6e 63 6c 75 64 65 64 |ely not |included|
|00000db0| 2e 20 54 68 69 73 20 65 | 78 61 6d 70 6c 65 20 77 |. This e|xample w|
|00000dc0| 69 6c 6c 20 6e 6f 74 20 | 77 6f 72 6b 0d 09 20 20 |ill not |work.. |
|00000dd0| 6f 6e 20 61 20 31 32 38 | 4b 20 4d 61 63 69 6e 74 |on a 128|K Macint|
|00000de0| 6f 73 68 2c 20 73 69 6e | 63 65 20 6d 65 6d 6f 72 |osh, sin|ce memor|
|00000df0| 79 20 61 6c 6c 6f 63 61 | 74 69 6f 6e 20 69 73 20 |y alloca|tion is |
|00000e00| 64 6f 6e 65 20 74 6f 6f | 20 73 69 6d 70 6c 69 73 |done too| simplis|
|00000e10| 74 69 63 61 6c 6c 79 2e | 0d 09 7d 0d 09 43 4f 4e |tically.|..}..CON|
|00000e20| 53 54 0d 09 09 44 65 66 | 61 75 6c 74 56 6f 6c 75 |ST...Def|aultVolu|
|00000e30| 6d 65 20 3d 20 30 3b 0d | 09 09 48 65 61 64 65 72 |me = 0;.|..Header|
|00000e40| 53 69 7a 65 20 3d 20 35 | 31 32 3b 09 09 7b 20 73 |Size = 5|12;..{ s|
|00000e50| 69 7a 65 20 6f 66 20 4d | 61 63 50 61 69 6e 74 20 |ize of M|acPaint |
|00000e60| 68 65 61 64 65 72 20 69 | 6e 20 62 79 74 65 73 20 |header i|n bytes |
|00000e70| 7d 20 0d 09 09 4d 61 78 | 55 6e 50 61 63 6b 65 64 |} ...Max|UnPacked|
|00000e80| 53 69 7a 65 20 3d 20 35 | 31 38 34 30 3b 09 7b 20 |Size = 5|1840;.{ |
|00000e90| 6d 61 78 69 6d 75 6d 20 | 4d 61 63 50 61 69 6e 74 |maximum |MacPaint|
|00000ea0| 20 73 69 7a 65 20 69 6e | 20 62 79 74 65 73 20 7d | size in| bytes }|
|00000eb0| 0d 09 09 09 09 09 09 7b | 20 37 32 30 20 6c 69 6e |.......{| 720 lin|
|00000ec0| 65 73 20 2a 20 37 32 20 | 62 79 74 65 73 2f 6c 69 |es * 72 |bytes/li|
|00000ed0| 6e 65 20 7d 0d 09 56 41 | 52 0d 09 09 73 72 63 50 |ne }..VA|R...srcP|
|00000ee0| 74 72 3a 20 09 50 74 72 | 3b 0d 09 09 64 73 74 50 |tr: .Ptr|;...dstP|
|00000ef0| 74 72 3a 20 09 50 74 72 | 3b 0d 09 09 73 61 76 65 |tr: .Ptr|;...save|
|00000f00| 44 73 74 50 74 72 3a 09 | 50 74 72 3b 0d 09 09 6c |DstPtr:.|Ptr;...l|
|00000f10| 61 73 74 44 65 73 74 50 | 74 72 3a 09 50 74 72 3b |astDestP|tr:.Ptr;|
|00000f20| 0d 09 09 73 72 63 46 69 | 6c 65 3a 20 09 49 4e 54 |...srcFi|le: .INT|
|00000f30| 45 47 45 52 3b 0d 09 09 | 73 72 63 53 69 7a 65 3a |EGER;...|srcSize:|
|00000f40| 20 09 4c 4f 4e 47 49 4e | 54 3b 0d 09 09 65 72 72 | .LONGIN|T;...err|
|00000f50| 43 6f 64 65 3a 09 49 4e | 54 45 47 45 52 3b 0d 09 |Code:.IN|TEGER;..|
|00000f60| 09 73 63 61 6e 4c 69 6e | 65 3a 09 49 4e 54 45 47 |.scanLin|e:.INTEG|
|00000f70| 45 52 3b 0d 09 09 61 50 | 6f 72 74 3a 09 47 72 61 |ER;...aP|ort:.Gra|
|00000f80| 66 50 6f 72 74 3b 0d 09 | 09 74 68 65 42 69 74 4d |fPort;..|.theBitM|
|00000f90| 61 70 3a 09 42 69 74 4d | 61 70 3b 0d 09 42 45 47 |ap:.BitM|ap;..BEG|
|00000fa0| 49 4e 0d 09 09 65 72 72 | 43 6f 64 65 20 3a 3d 20 |IN...err|Code := |
|00000fb0| 46 53 4f 70 65 6e 28 27 | 4d 50 20 54 65 73 74 46 |FSOpen('|MP TestF|
|00000fc0| 69 6c 65 27 2c 20 44 65 | 66 61 75 6c 74 56 6f 6c |ile', De|faultVol|
|00000fd0| 75 6d 65 2c 20 73 72 63 | 46 69 6c 65 29 3b 20 7b |ume, src|File); {|
|00000fe0| 20 4f 70 65 6e 20 74 68 | 65 20 09 09 09 09 09 09 | Open th|e ......|
|00000ff0| 09 09 09 20 20 20 20 20 | 20 20 20 20 20 66 69 6c |... | fil|
|00001000| 65 2e 20 7d 0d 09 09 49 | 46 20 65 72 72 43 6f 64 |e. }...I|F errCod|
|00001010| 65 20 3c 3e 20 6e 6f 45 | 72 72 20 54 48 45 4e 20 |e <> noE|rr THEN |
|00001020| 45 78 69 74 54 6f 53 68 | 65 6c 6c 3b 0d 09 09 0d |ExitToSh|ell;....|
|00001030| 09 09 65 72 72 63 6f 64 | 65 20 3a 3d 20 53 65 74 |..errcod|e := Set|
|00001040| 46 50 6f 73 28 73 72 63 | 46 69 6c 65 2c 20 66 73 |FPos(src|File, fs|
|00001050| 46 72 6f 6d 53 74 61 72 | 74 2c 20 48 65 61 64 65 |FromStar|t, Heade|
|00001060| 72 53 69 7a 65 29 3b 09 | 7b 20 53 6b 69 70 20 74 |rSize);.|{ Skip t|
|00001070| 68 65 20 09 09 09 09 09 | 09 09 09 09 09 20 20 68 |he .....|..... h|
|00001080| 65 61 64 65 72 20 29 0d | 09 09 49 46 20 65 72 72 |eader ).|..IF err|
|00001090| 43 6f 64 65 20 3c 3e 20 | 6e 6f 45 72 72 20 54 48 |Code <> |noErr TH|
|000010a0| 45 4e 20 45 78 69 74 54 | 6f 53 68 65 6c 6c 3b 0d |EN ExitT|oShell;.|
|000010b0| 09 09 65 72 72 43 6f 64 | 65 20 3a 3d 20 47 65 74 |..errCod|e := Get|
|000010c0| 45 4f 46 28 73 72 63 46 | 69 6c 65 2c 20 73 72 63 |EOF(srcF|ile, src|
|000010d0| 53 69 7a 65 29 3b 09 7b | 20 46 69 6e 64 20 6f 75 |Size);.{| Find ou|
|000010e0| 74 20 68 6f 77 20 62 69 | 67 20 74 68 65 20 66 69 |t how bi|g the fi|
|000010f0| 6c 65 20 09 09 09 09 09 | 09 09 09 20 20 69 73 2c |le .....|... is,|
|00001100| 20 7d 09 09 0d 09 09 49 | 46 20 65 72 72 43 6f 64 | }.....I|F errCod|
|00001110| 65 20 3c 3e 20 6e 6f 45 | 72 72 20 54 48 45 4e 20 |e <> noE|rr THEN |
|00001120| 45 78 69 74 54 6f 53 68 | 65 6c 6c 3b 09 7b 20 61 |ExitToSh|ell;.{ a|
|00001130| 6e 64 20 66 69 67 75 72 | 65 20 6f 75 74 20 73 6f |nd figur|e out so|
|00001140| 75 72 63 65 20 09 09 09 | 09 09 09 09 09 20 20 73 |urce ...|..... s|
|00001150| 69 7a 65 2e 20 7d 0d 09 | 09 73 72 63 53 69 7a 65 |ize. }..|.srcSize|
|00001160| 20 3a 3d 20 73 72 63 53 | 69 7a 65 20 2d 20 48 65 | := srcS|ize - He|
|00001170| 61 64 65 72 53 69 7a 65 | 20 3b 09 09 7b 20 52 65 |aderSize| ;..{ Re|
|00001180| 6d 6f 76 65 20 74 68 65 | 20 68 65 61 64 65 72 20 |move the| header |
|00001190| 66 72 6f 6d 20 09 09 09 | 09 09 09 09 09 20 20 63 |from ...|..... c|
|000011a0| 6f 75 6e 74 2e 20 7d 0d | 09 09 73 72 63 50 74 72 |ount. }.|..srcPtr|
|000011b0| 20 3a 3d 20 4e 65 77 50 | 74 72 28 73 72 63 53 69 | := NewP|tr(srcSi|
|000011c0| 7a 65 29 3b 09 09 09 7b | 20 4d 61 6b 65 20 62 75 |ze);...{| Make bu|
|000011d0| 66 66 65 72 20 6a 75 73 | 74 20 74 68 65 20 09 09 |ffer jus|t the ..|
|000011e0| 09 09 09 09 09 09 20 20 | 72 69 67 68 74 20 73 69 |...... |right si|
|000011f0| 7a 65 20 7d 0d 09 09 49 | 46 20 73 72 63 50 74 72 |ze }...I|F srcPtr|
|00001200| 20 3d 20 4e 49 4c 20 54 | 48 45 4e 20 45 78 69 74 | = NIL T|HEN Exit|
|00001210| 54 6f 53 68 65 6c 6c 3b | 0d 09 09 0d 09 09 65 72 |ToShell;|......er|
|00001220| 72 43 6f 64 65 20 3a 3d | 20 46 53 52 65 61 64 28 |rCode :=| FSRead(|
|00001230| 73 72 63 46 69 6c 65 2c | 20 73 72 63 53 69 7a 65 |srcFile,| srcSize|
|00001240| 2c 20 73 72 63 50 74 72 | 29 3b 20 7b 20 52 65 61 |, srcPtr|); { Rea|
|00001250| 64 20 74 68 65 20 64 61 | 74 61 20 69 6e 74 6f 20 |d the da|ta into |
|00001260| 74 68 65 20 09 09 09 09 | 09 09 09 09 20 20 20 20 |the ....|.... |
|00001270| 62 75 66 66 65 72 2e 20 | 7d 0d 09 09 49 46 20 65 |buffer. |}...IF e|
|00001280| 72 72 43 6f 64 65 20 3c | 3e 20 6e 6f 45 72 72 20 |rrCode <|> noErr |
|00001290| 54 48 45 4e 20 45 78 69 | 74 54 6f 53 68 65 6c 6c |THEN Exi|tToShell|
|000012a0| 3b 09 7b 20 46 69 6c 65 | 20 6d 61 72 6b 65 72 20 |;.{ File| marker |
|000012b0| 69 73 20 70 61 73 74 20 | 09 09 09 09 09 09 09 09 |is past |........|
|000012c0| 20 20 68 65 61 64 65 72 | 2e 20 7d 0d 09 09 65 72 | header|. }...er|
|000012d0| 72 43 6f 64 65 20 3a 3d | 20 46 53 43 6c 6f 73 65 |rCode :=| FSClose|
|000012e0| 28 73 72 63 46 69 6c 65 | 29 3b 09 09 7b 20 43 6c |(srcFile|);..{ Cl|
|000012f0| 6f 73 65 20 74 68 65 20 | 66 69 6c 65 20 77 65 20 |ose the |file we |
|00001300| 6a 75 73 74 20 09 09 09 | 09 09 09 09 09 20 20 72 |just ...|..... r|
|00001310| 65 61 64 2e 20 7d 0d 09 | 09 49 46 20 65 72 72 43 |ead. }..|.IF errC|
|00001320| 6f 64 65 20 3c 3e 20 6e | 6f 45 72 72 20 54 48 45 |ode <> n|oErr THE|
|00001330| 4e 20 45 78 69 74 54 6f | 53 68 65 6c 6c 3b 0d 09 |N ExitTo|Shell;..|
|00001340| 09 7b 20 43 72 65 61 74 | 65 20 61 20 62 75 66 66 |.{ Creat|e a buff|
|00001350| 65 72 20 74 68 61 74 20 | 77 69 6c 6c 20 62 65 20 |er that |will be |
|00001360| 75 73 65 64 20 66 6f 72 | 20 74 68 65 20 44 65 73 |used for| the Des|
|00001370| 74 69 6e 61 74 69 6f 6e | 20 42 69 74 4d 61 70 2e |tination| BitMap.|
|00001380| 20 7d 0d 09 09 64 73 74 | 50 74 72 20 3a 3d 20 4e | }...dst|Ptr := N|
|00001390| 65 77 50 74 72 43 6c 65 | 61 72 28 4d 61 78 55 6e |ewPtrCle|ar(MaxUn|
|000013a0| 50 61 63 6b 65 64 53 69 | 7a 65 29 3b 09 7b 4d 50 |PackedSi|ze);.{MP|
|000013b0| 57 20 6c 69 62 72 61 72 | 79 20 72 6f 75 74 69 6e |W librar|y routin|
|000013c0| 65 2c 20 73 65 65 20 09 | 09 09 09 09 09 09 09 20 |e, see .|....... |
|000013d0| 54 4e 20 32 31 39 7d 0d | 09 09 49 46 20 64 73 74 |TN 219}.|..IF dst|
|000013e0| 50 74 72 20 3d 20 4e 49 | 4c 20 54 48 45 4e 20 45 |Ptr = NI|L THEN E|
|000013f0| 78 69 74 54 6f 53 68 65 | 6c 6c 3b 0d 09 09 73 61 |xitToShe|ll;...sa|
|00001400| 76 65 44 73 74 50 74 72 | 20 3a 3d 20 64 73 74 50 |veDstPtr| := dstP|
|00001410| 74 72 3b 0d 09 09 7b 20 | 55 6e 70 61 63 6b 20 65 |tr;...{ |Unpack e|
|00001420| 61 63 68 20 73 63 61 6e | 20 6c 69 6e 65 20 69 6e |ach scan| line in|
|00001430| 74 6f 20 74 68 65 20 62 | 75 66 66 65 72 2e 20 4e |to the b|uffer. N|
|00001440| 6f 74 65 20 74 68 61 74 | 20 37 32 30 20 73 63 61 |ote that| 720 sca|
|00001450| 6e 20 6c 69 6e 65 73 20 | 61 72 65 0d 09 09 20 20 |n lines |are... |
|00001460| 67 75 61 72 61 6e 74 65 | 65 64 20 74 6f 20 62 65 |guarante|ed to be|
|00001470| 20 69 6e 20 74 68 65 20 | 66 69 6c 65 2e 20 28 54 | in the |file. (T|
|00001480| 68 65 79 20 6d 61 79 20 | 62 65 20 62 6c 61 6e 6b |hey may |be blank|
|00001490| 20 6c 69 6e 65 73 2e 29 | 20 49 6e 20 74 68 65 0d | lines.)| In the.|
|000014a0| 09 09 20 20 55 6e 50 61 | 63 6b 42 69 74 73 20 63 |.. UnPa|ckBits c|
|000014b0| 61 6c 6c 2c 20 74 68 65 | 20 37 32 20 69 73 20 74 |all, the| 72 is t|
|000014c0| 68 65 20 63 6f 75 6e 74 | 20 6f 66 20 62 79 74 65 |he count| of byte|
|000014d0| 73 20 64 6f 6e 65 20 77 | 68 65 6e 20 74 68 65 20 |s done w|hen the |
|000014e0| 66 69 6c 65 20 77 61 73 | 0d 09 09 20 20 63 72 65 |file was|... cre|
|000014f0| 61 74 65 64 2e 20 20 4d | 61 63 50 61 69 6e 74 20 |ated. M|acPaint |
|00001500| 64 6f 65 73 20 6f 6e 65 | 20 73 63 61 6e 20 6c 69 |does one| scan li|
|00001510| 6e 65 20 61 74 20 61 20 | 74 69 6d 65 20 77 68 65 |ne at a |time whe|
|00001520| 6e 20 63 72 65 61 74 69 | 6e 67 20 74 68 65 20 0d |n creati|ng the .|
|00001530| 09 09 20 20 66 69 6c 65 | 2e 20 54 68 65 20 64 65 |.. file|. The de|
|00001540| 73 74 69 6e 61 74 69 6f | 6e 20 70 6f 69 6e 74 65 |stinatio|n pointe|
|00001550| 72 20 69 73 20 74 65 73 | 74 65 64 20 65 61 63 68 |r is tes|ted each|
|00001560| 20 74 69 6d 65 20 74 68 | 72 6f 75 67 68 20 74 68 | time th|rough th|
|00001570| 65 20 73 63 61 6e 20 0d | 09 09 20 20 6c 6f 6f 70 |e scan .|.. loop|
|00001580| 2e 20 55 6e 50 61 63 6b | 42 69 74 73 20 73 68 6f |. UnPack|Bits sho|
|00001590| 75 6c 64 20 69 6e 63 72 | 65 6d 65 6e 74 20 74 68 |uld incr|ement th|
|000015a0| 69 73 20 70 6f 69 6e 74 | 65 72 20 62 79 20 37 32 |is point|er by 72|
|000015b0| 2c 20 62 75 74 20 69 6e | 20 74 68 65 20 0d 09 09 |, but in| the ...|
|000015c0| 20 20 63 61 73 65 20 77 | 68 65 72 65 20 74 68 65 | case w|here the|
|000015d0| 20 70 61 63 6b 65 64 20 | 66 69 6c 65 20 69 73 20 | packed |file is |
|000015e0| 63 6f 72 72 75 70 74 65 | 64 20 55 6e 50 61 63 6b |corrupte|d UnPack|
|000015f0| 42 69 74 73 20 6d 61 79 | 20 65 6e 64 20 75 70 20 |Bits may| end up |
|00001600| 0d 09 09 20 20 73 65 6e | 64 69 6e 67 20 62 69 74 |... sen|ding bit|
|00001610| 73 20 69 6e 74 6f 20 75 | 6e 63 68 61 72 74 65 64 |s into u|ncharted|
|00001620| 20 74 65 72 72 69 74 6f | 72 79 2e 20 20 41 20 74 | territo|ry. A t|
|00001630| 65 6d 70 6f 72 61 72 79 | 20 70 6f 69 6e 74 65 72 |emporary| pointer|
|00001640| 20 09 09 09 20 20 22 6c | 61 73 74 44 73 74 50 74 | ... "l|astDstPt|
|00001650| 72 22 20 69 73 20 75 73 | 65 64 20 66 6f 72 20 74 |r" is us|ed for t|
|00001660| 65 73 74 69 6e 67 20 74 | 68 65 20 72 65 73 75 6c |esting t|he resul|
|00001670| 74 2e 7d 0d 09 09 46 4f | 52 20 73 63 61 6e 4c 69 |t.}...FO|R scanLi|
|00001680| 6e 65 20 3a 3d 20 31 20 | 54 4f 20 37 32 30 20 44 |ne := 1 |TO 720 D|
|00001690| 4f 20 42 45 47 49 4e 0d | 09 09 20 20 20 20 20 6c |O BEGIN.|.. l|
|000016a0| 61 73 74 44 73 74 50 74 | 72 20 3a 3d 20 64 73 74 |astDstPt|r := dst|
|000016b0| 50 74 72 3b 0d 09 09 20 | 20 20 20 20 55 6e 50 61 |Ptr;... | UnPa|
|000016c0| 63 6b 42 69 74 73 28 73 | 72 63 50 74 72 2c 20 64 |ckBits(s|rcPtr, d|
|000016d0| 73 74 50 74 72 2c 20 37 | 32 29 3b 20 09 7b 20 62 |stPtr, 7|2); .{ b|
|000016e0| 75 6d 70 73 20 62 6f 74 | 68 20 70 6f 69 6e 74 65 |umps bot|h pointe|
|000016f0| 72 73 20 7d 0d 09 09 20 | 20 20 20 20 49 46 20 4f |rs }... | IF O|
|00001700| 52 44 34 28 6c 61 73 74 | 44 73 74 50 74 72 29 20 |RD4(last|DstPtr) |
|00001710| 2b 20 37 32 20 3c 3e 20 | 4f 52 44 34 28 64 73 74 |+ 72 <> |ORD4(dst|
|00001720| 50 74 72 29 20 54 48 45 | 4e 20 45 78 69 74 54 6f |Ptr) THE|N ExitTo|
|00001730| 53 68 65 6c 6c 3b 0d 09 | 09 45 4e 44 3b 0d 09 09 |Shell;..|.END;...|
|00001740| 7b 20 54 68 65 20 62 75 | 66 66 65 72 20 68 61 73 |{ The bu|ffer has|
|00001750| 20 62 65 65 6e 20 66 75 | 6c 6c 79 20 75 6e 70 61 | been fu|lly unpa|
|00001760| 63 6b 65 64 2e 20 43 72 | 65 61 74 65 20 61 20 70 |cked. Cr|eate a p|
|00001770| 6f 72 74 20 74 68 61 74 | 20 77 65 20 63 61 6e 20 |ort that| we can |
|00001780| 64 72 61 77 20 09 09 20 | 20 69 6e 74 6f 2e 20 59 |draw .. | into. Y|
|00001790| 6f 75 20 73 68 6f 75 6c | 64 20 73 61 76 65 20 61 |ou shoul|d save a|
|000017a0| 6e 64 20 72 65 73 74 6f | 72 65 20 74 68 65 20 63 |nd resto|re the c|
|000017b0| 75 72 72 65 6e 74 20 70 | 6f 72 74 2e 20 20 7d 0d |urrent p|ort. }.|
|000017c0| 09 09 4f 70 65 6e 50 6f | 72 74 28 40 61 50 6f 72 |..OpenPo|rt(@aPor|
|000017d0| 74 29 3b 0d 09 09 7b 20 | 43 72 65 61 74 65 20 61 |t);...{ |Create a|
|000017e0| 20 42 69 74 4d 61 70 20 | 6f 75 74 20 6f 66 20 6f | BitMap |out of o|
|000017f0| 75 72 20 73 61 76 65 44 | 73 74 50 74 72 20 74 68 |ur saveD|stPtr th|
|00001800| 61 74 20 63 61 6e 20 62 | 65 20 63 6f 70 69 65 64 |at can b|e copied|
|00001810| 20 74 6f 20 74 68 65 20 | 09 09 20 20 73 63 72 65 | to the |.. scre|
|00001820| 65 6e 2e 20 7d 0d 09 09 | 74 68 65 42 69 74 4d 61 |en. }...|theBitMa|
|00001830| 70 2e 62 61 73 65 41 64 | 64 72 20 3a 3d 20 73 61 |p.baseAd|dr := sa|
|00001840| 76 65 44 73 74 50 74 72 | 3b 0d 09 09 74 68 65 42 |veDstPtr|;...theB|
|00001850| 69 74 4d 61 70 2e 72 6f | 77 42 79 74 65 73 20 3a |itMap.ro|wBytes :|
|00001860| 3d 20 37 32 3b 20 09 09 | 7b 20 77 69 64 74 68 20 |= 72; ..|{ width |
|00001870| 6f 66 20 4d 61 63 50 61 | 69 6e 74 20 70 69 63 74 |of MacPa|int pict|
|00001880| 75 72 65 20 7d 0d 09 09 | 53 65 74 50 74 28 74 68 |ure }...|SetPt(th|
|00001890| 65 42 69 74 4d 61 70 2e | 62 6f 75 6e 64 73 2e 74 |eBitMap.|bounds.t|
|000018a0| 6f 70 4c 65 66 74 2c 20 | 30 2c 20 30 29 3b 0d 09 |opLeft, |0, 0);..|
|000018b0| 09 53 65 74 50 74 28 74 | 68 65 42 69 74 4d 61 70 |.SetPt(t|heBitMap|
|000018c0| 2e 62 6f 75 6e 64 73 2e | 62 6f 74 52 69 67 68 74 |.bounds.|botRight|
|000018d0| 2c 20 37 32 2a 38 2c 20 | 37 32 30 29 3b 20 7b 6d |, 72*8, |720); {m|
|000018e0| 61 78 69 6d 75 6d 20 72 | 65 63 74 61 6e 67 6c 65 |aximum r|ectangle|
|000018f0| 7d 0d 09 09 7b 20 4e 6f | 77 20 75 73 65 20 74 68 |}...{ No|w use th|
|00001900| 61 74 20 42 69 74 4d 61 | 70 20 61 6e 64 20 64 72 |at BitMa|p and dr|
|00001910| 61 77 20 74 68 65 20 70 | 69 65 63 65 20 6f 66 20 |aw the p|iece of |
|00001920| 69 74 20 74 6f 20 74 68 | 65 20 73 63 72 65 65 6e |it to th|e screen|
|00001930| 2e 0d 09 09 20 20 4f 6e | 6c 79 20 64 72 61 77 20 |.... On|ly draw |
|00001940| 74 68 65 20 70 69 65 63 | 65 20 74 68 61 74 20 69 |the piec|e that i|
|00001950| 73 20 66 75 6c 6c 20 73 | 63 72 65 65 6e 20 73 69 |s full s|creen si|
|00001960| 7a 65 20 28 70 6f 72 74 | 52 65 63 74 29 2e 20 7d |ze (port|Rect). }|
|00001970| 0d 09 09 43 6f 70 79 42 | 69 74 73 28 74 68 65 42 |...CopyB|its(theB|
|00001980| 69 74 4d 61 70 2c 20 61 | 50 6f 72 74 2e 70 6f 72 |itMap, a|Port.por|
|00001990| 74 42 69 74 73 2c 20 61 | 50 6f 72 74 2e 70 6f 72 |tBits, a|Port.por|
|000019a0| 74 52 65 63 74 2c 0d 09 | 09 09 61 50 6f 72 74 2e |tRect,..|..aPort.|
|000019b0| 70 6f 72 74 52 65 63 74 | 2c 20 73 72 63 43 6f 70 |portRect|, srcCop|
|000019c0| 79 2c 20 4e 49 4c 29 3b | 0d 09 09 7b 20 57 65 20 |y, NIL);|...{ We |
|000019d0| 6e 65 65 64 20 74 6f 20 | 64 69 73 70 6f 73 65 20 |need to |dispose |
|000019e0| 6f 66 20 74 68 65 20 6d | 65 6d 6f 72 79 20 77 65 |of the m|emory we|
|000019f0| d5 76 65 20 61 6c 6c 6f | 63 61 74 65 64 2e 20 20 |.ve allo|cated. |
|00001a00| 59 6f 75 20 77 6f 75 6c | 64 20 6e 6f 74 0d 09 09 |You woul|d not...|
|00001a10| 20 20 64 69 73 70 6f 73 | 65 20 6f 66 20 74 68 65 | dispos|e of the|
|00001a20| 20 64 65 73 74 50 74 72 | 20 69 66 20 79 6f 75 20 | destPtr| if you |
|00001a30| 77 69 73 68 20 74 6f 20 | 65 64 69 74 20 74 68 65 |wish to |edit the|
|00001a40| 20 64 61 74 61 2e 20 20 | 7d 0d 09 09 44 69 73 70 | data. |}...Disp|
|00001a50| 6f 73 50 74 72 28 73 72 | 63 50 74 72 29 3b 09 7b |osPtr(sr|cPtr);.{|
|00001a60| 20 64 69 73 70 6f 73 65 | 20 6f 66 20 74 68 65 20 | dispose| of the |
|00001a70| 73 6f 75 72 63 65 20 62 | 75 66 66 65 72 20 7d 0d |source b|uffer }.|
|00001a80| 09 09 44 69 73 70 6f 73 | 50 74 72 28 64 73 74 50 |..Dispos|Ptr(dstP|
|00001a90| 74 72 29 3b 09 7b 20 64 | 69 73 70 6f 73 65 20 6f |tr);.{ d|ispose o|
|00001aa0| 66 20 74 68 65 20 64 65 | 73 74 69 6e 61 74 69 6f |f the de|stinatio|
|00001ab0| 6e 20 62 75 66 66 65 72 | 20 7d 0d 09 45 4e 44 3b |n buffer| }..END;|
|00001ac0| 0d 57 72 69 74 69 6e 67 | 20 53 61 6d 70 6c 65 0d |.Writing| Sample.|
|00001ad0| 09 50 52 4f 43 45 44 55 | 52 45 20 57 72 69 74 65 |.PROCEDU|RE Write|
|00001ae0| 4d 50 46 69 6c 65 3b 0d | 09 7b 20 54 68 69 73 20 |MPFile;.|.{ This |
|00001af0| 69 73 20 61 20 73 6d 61 | 6c 6c 20 65 78 61 6d 70 |is a sma|ll examp|
|00001b00| 6c 65 20 70 72 6f 63 65 | 64 75 72 65 20 77 72 69 |le proce|dure wri|
|00001b10| 74 74 65 6e 20 69 6e 20 | 50 61 73 63 61 6c 20 74 |tten in |Pascal t|
|00001b20| 68 61 74 20 64 65 6d 6f | 6e 73 74 72 61 74 65 73 |hat demo|nstrates|
|00001b30| 20 68 6f 77 20 0d 09 20 | 20 74 6f 20 77 72 69 74 | how .. | to writ|
|00001b40| 65 20 4d 61 63 50 61 69 | 6e 74 20 66 69 6c 65 73 |e MacPai|nt files|
|00001b50| 2e 20 49 74 20 77 69 6c | 6c 20 75 73 65 20 74 68 |. It wil|l use th|
|00001b60| 65 20 73 63 72 65 65 6e | 20 61 73 20 61 20 68 61 |e screen| as a ha|
|00001b70| 6e 64 79 20 42 69 74 4d | 61 70 20 74 6f 20 62 65 |ndy BitM|ap to be|
|00001b80| 0d 09 20 20 77 72 69 74 | 74 65 6e 20 74 6f 20 61 |.. writ|ten to a|
|00001b90| 20 66 69 6c 65 2e 0d 09 | 7d 0d 09 0d 09 43 4f 4e | file...|}....CON|
|00001ba0| 53 54 0d 09 09 44 65 66 | 61 75 6c 74 56 6f 6c 75 |ST...Def|aultVolu|
|00001bb0| 6d 65 20 3d 20 30 3b 0d | 09 09 48 65 61 64 65 72 |me = 0;.|..Header|
|00001bc0| 53 69 7a 65 20 3d 20 35 | 31 32 3b 09 7b 20 73 69 |Size = 5|12;.{ si|
|00001bd0| 7a 65 20 6f 66 20 4d 61 | 63 50 61 69 6e 74 20 68 |ze of Ma|cPaint h|
|00001be0| 65 61 64 65 72 20 69 6e | 20 62 79 74 65 73 20 7d |eader in| bytes }|
|00001bf0| 20 0d 09 09 4d 61 78 46 | 69 6c 65 53 69 7a 65 20 | ...MaxF|ileSize |
|00001c00| 3d 20 35 33 30 37 32 3b | 09 7b 20 6d 61 78 69 6d |= 53072;|.{ maxim|
|00001c10| 75 6d 20 4d 61 63 50 61 | 69 6e 74 20 66 69 6c 65 |um MacPa|int file|
|00001c20| 20 73 69 7a 65 2e 20 7d | 0d 09 56 41 52 0d 09 09 | size. }|..VAR...|
|00001c30| 73 72 63 50 74 72 3a 20 | 09 50 74 72 3b 0d 09 09 |srcPtr: |.Ptr;...|
|00001c40| 64 73 74 50 74 72 3a 20 | 09 50 74 72 3b 0d 09 09 |dstPtr: |.Ptr;...|
|00001c50| 64 73 74 46 69 6c 65 3a | 20 09 49 4e 54 45 47 45 |dstFile:| .INTEGE|
|00001c60| 52 3b 0d 09 09 64 73 74 | 53 69 7a 65 3a 20 09 4c |R;...dst|Size: .L|
|00001c70| 4f 4e 47 49 4e 54 3b 0d | 09 09 65 72 72 43 6f 64 |ONGINT;.|..errCod|
|00001c80| 65 3a 09 49 4e 54 45 47 | 45 52 3b 0d 09 09 73 63 |e:.INTEG|ER;...sc|
|00001c90| 61 6e 4c 69 6e 65 3a 09 | 49 4e 54 45 47 45 52 3b |anLine:.|INTEGER;|
|00001ca0| 0d 09 09 61 50 6f 72 74 | 3a 09 47 72 61 66 50 6f |...aPort|:.GrafPo|
|00001cb0| 72 74 3b 0d 09 09 64 73 | 74 42 75 66 66 65 72 3a |rt;...ds|tBuffer:|
|00001cc0| 09 50 41 43 4b 45 44 20 | 41 52 52 41 59 5b 31 2e |.PACKED |ARRAY[1.|
|00001cd0| 2e 48 65 61 64 65 72 53 | 69 7a 65 5d 20 4f 46 20 |.HeaderS|ize] OF |
|00001ce0| 42 59 54 45 3b 0d 09 09 | 49 3a 09 4c 4f 4e 47 49 |BYTE;...|I:.LONGI|
|00001cf0| 4e 54 3b 0d 09 09 70 69 | 63 74 75 72 65 50 74 72 |NT;...pi|cturePtr|
|00001d00| 3a 09 50 74 72 3b 0d 09 | 09 74 65 6d 70 50 74 72 |:.Ptr;..|.tempPtr|
|00001d10| 3a 09 42 69 67 50 74 72 | 3b 0d 09 09 74 68 65 42 |:.BigPtr|;...theB|
|00001d20| 69 74 4d 61 70 3a 09 42 | 69 74 4d 61 70 3b 0d 09 |itMap:.B|itMap;..|
|00001d30| 0d 09 42 45 47 49 4e 0d | 09 09 7b 20 4d 61 6b 65 |..BEGIN.|..{ Make|
|00001d40| 20 61 6e 20 65 6d 70 74 | 79 20 62 75 66 66 65 72 | an empt|y buffer|
|00001d50| 20 74 68 61 74 20 69 73 | 20 74 68 65 20 70 69 63 | that is| the pic|
|00001d60| 74 75 72 65 20 73 69 7a | 65 2e 20 7d 0d 09 09 70 |ture siz|e. }...p|
|00001d70| 69 63 74 75 72 65 50 74 | 72 20 3a 3d 20 4e 65 77 |icturePt|r := New|
|00001d80| 50 74 72 43 6c 65 61 72 | 28 4d 61 78 46 69 6c 65 |PtrClear|(MaxFile|
|00001d90| 53 69 7a 65 29 3b 09 7b | 4d 50 57 20 6c 69 62 72 |Size);.{|MPW libr|
|00001da0| 61 72 79 20 72 6f 75 74 | 69 6e 65 2c 20 73 65 65 |ary rout|ine, see|
|00001db0| 20 09 09 09 09 09 09 09 | 09 20 54 4e 20 32 31 39 | .......|. TN 219|
|00001dc0| 7d 0d 09 09 49 46 20 70 | 69 63 74 75 72 65 50 74 |}...IF p|icturePt|
|00001dd0| 72 20 3d 20 4e 49 4c 20 | 54 48 45 4e 20 45 78 69 |r = NIL |THEN Exi|
|00001de0| 74 54 6f 53 68 65 6c 6c | 3b 0d 09 09 7b 20 4f 70 |tToShell|;...{ Op|
|00001df0| 65 6e 20 61 20 70 6f 72 | 74 20 73 6f 20 77 65 20 |en a por|t so we |
|00001e00| 63 61 6e 20 67 65 74 20 | 74 6f 20 74 68 65 20 73 |can get |to the s|
|00001e10| 63 72 65 65 6e 27 73 20 | 42 69 74 4d 61 70 20 65 |creen's |BitMap e|
|00001e20| 61 73 69 6c 79 2e 20 20 | 59 6f 75 20 73 68 6f 75 |asily. |You shou|
|00001e30| 6c 64 20 0d 09 09 20 20 | 73 61 76 65 20 61 6e 64 |ld ... |save and|
|00001e40| 20 72 65 73 74 6f 72 65 | 20 74 68 65 20 63 75 72 | restore| the cur|
|00001e50| 72 65 6e 74 20 70 6f 72 | 74 2e 20 7d 0d 09 09 4f |rent por|t. }...O|
|00001e60| 70 65 6e 50 6f 72 74 28 | 40 61 50 6f 72 74 29 3b |penPort(|@aPort);|
|00001e70| 0d 09 09 7b 20 43 72 65 | 61 74 65 20 61 20 42 69 |...{ Cre|ate a Bi|
|00001e80| 74 4d 61 70 20 6f 75 74 | 20 6f 66 20 6f 75 72 20 |tMap out| of our |
|00001e90| 64 73 74 50 74 72 20 74 | 68 61 74 20 63 61 6e 20 |dstPtr t|hat can |
|00001ea0| 62 65 20 63 6f 70 69 65 | 64 20 74 6f 20 74 68 65 |be copie|d to the|
|00001eb0| 20 73 63 72 65 65 6e 2e | 20 7d 0d 09 09 74 68 65 | screen.| }...the|
|00001ec0| 42 69 74 4d 61 70 2e 62 | 61 73 65 41 64 64 72 20 |BitMap.b|aseAddr |
|00001ed0| 3a 3d 20 70 69 63 74 75 | 72 65 50 74 72 3b 0d 09 |:= pictu|rePtr;..|
|00001ee0| 09 74 68 65 42 69 74 4d | 61 70 2e 72 6f 77 42 79 |.theBitM|ap.rowBy|
|00001ef0| 74 65 73 20 3a 3d 20 37 | 32 3b 20 09 09 7b 20 77 |tes := 7|2; ..{ w|
|00001f00| 69 64 74 68 20 6f 66 20 | 4d 61 63 50 61 69 6e 74 |idth of |MacPaint|
|00001f10| 20 70 69 63 74 75 72 65 | 20 7d 0d 09 09 53 65 74 | picture| }...Set|
|00001f20| 50 74 28 74 68 65 42 69 | 74 4d 61 70 2e 62 6f 75 |Pt(theBi|tMap.bou|
|00001f30| 6e 64 73 2e 74 6f 70 4c | 65 66 74 2c 20 30 2c 20 |nds.topL|eft, 0, |
|00001f40| 30 29 3b 0d 09 09 53 65 | 74 50 74 28 74 68 65 42 |0);...Se|tPt(theB|
|00001f50| 69 74 4d 61 70 2e 62 6f | 75 6e 64 73 2e 62 6f 74 |itMap.bo|unds.bot|
|00001f60| 52 69 67 68 74 2c 20 37 | 32 2a 38 2c 20 37 32 30 |Right, 7|2*8, 720|
|00001f70| 29 3b 20 7b 6d 61 78 69 | 6d 75 6d 20 72 65 63 74 |); {maxi|mum rect|
|00001f80| 61 6e 67 6c 65 7d 0d 09 | 09 7b 20 44 72 61 77 20 |angle}..|.{ Draw |
|00001f90| 74 68 65 20 73 63 72 65 | 65 6e 20 6f 76 65 72 20 |the scre|en over |
|00001fa0| 69 6e 74 6f 20 6f 75 72 | 20 70 69 63 74 75 72 65 |into our| picture|
|00001fb0| 20 62 75 66 66 65 72 2e | 20 7d 0d 09 09 43 6f 70 | buffer.| }...Cop|
|00001fc0| 79 42 69 74 73 28 61 50 | 6f 72 74 2e 70 6f 72 74 |yBits(aP|ort.port|
|00001fd0| 42 69 74 73 2c 20 74 68 | 65 42 69 74 4d 61 70 2c |Bits, th|eBitMap,|
|00001fe0| 20 61 50 6f 72 74 2e 70 | 6f 72 74 52 65 63 74 2c | aPort.p|ortRect,|
|00001ff0| 0d 09 09 09 61 50 6f 72 | 74 2e 70 6f 72 74 52 65 |....aPor|t.portRe|
|00002000| 63 74 2c 20 73 72 63 43 | 6f 70 79 2c 20 4e 49 4c |ct, srcC|opy, NIL|
|00002010| 29 3b 0d 09 09 7b 20 43 | 72 65 61 74 65 20 74 68 |);...{ C|reate th|
|00002020| 65 20 66 69 6c 65 2c 20 | 67 69 76 69 6e 67 20 69 |e file, |giving i|
|00002030| 74 20 74 68 65 20 72 69 | 67 68 74 20 43 72 65 61 |t the ri|ght Crea|
|00002040| 74 6f 72 20 61 6e 64 20 | 46 69 6c 65 20 74 79 70 |tor and |File typ|
|00002050| 65 2e 7d 0d 09 09 65 72 | 72 43 6f 64 65 20 3a 3d |e.}...er|rCode :=|
|00002060| 20 43 72 65 61 74 65 28 | 27 4d 50 20 54 65 73 74 | Create(|'MP Test|
|00002070| 46 69 6c 65 27 2c 20 44 | 65 66 61 75 6c 74 56 6f |File', D|efaultVo|
|00002080| 6c 75 6d 65 2c 20 27 4d | 50 4e 54 27 2c 20 27 50 |lume, 'M|PNT', 'P|
|00002090| 4e 54 47 27 29 3b 0d 09 | 09 49 46 20 65 72 72 43 |NTG');..|.IF errC|
|000020a0| 6f 64 65 20 3c 3e 20 6e | 6f 45 72 72 20 54 48 45 |ode <> n|oErr THE|
|000020b0| 4e 20 45 78 69 74 54 6f | 53 68 65 6c 6c 3b 0d 09 |N ExitTo|Shell;..|
|000020c0| 09 7b 20 4f 70 65 6e 20 | 74 68 65 20 64 61 74 61 |.{ Open |the data|
|000020d0| 20 66 69 6c 65 20 74 6f | 20 62 65 20 77 72 69 74 | file to| be writ|
|000020e0| 74 65 6e 2e 20 7d 0d 09 | 09 65 72 72 43 6f 64 65 |ten. }..|.errCode|
|000020f0| 20 3a 3d 20 46 53 4f 70 | 65 6e 28 64 73 74 46 69 | := FSOp|en(dstFi|
|00002100| 6c 65 4e 61 6d 65 2c 20 | 44 65 66 61 75 6c 74 56 |leName, |DefaultV|
|00002110| 6f 6c 75 6d 65 2c 20 64 | 73 74 46 69 6c 65 29 3b |olume, d|stFile);|
|00002120| 0d 09 09 49 46 20 65 72 | 72 43 6f 64 65 20 3c 3e |...IF er|rCode <>|
|00002130| 20 6e 6f 45 72 72 20 54 | 48 45 4e 20 45 78 69 74 | noErr T|HEN Exit|
|00002140| 54 6f 53 68 65 6c 6c 3b | 0d 09 09 46 4f 52 20 49 |ToShell;|...FOR I|
|00002150| 20 3a 3d 20 31 20 74 6f | 20 48 65 61 64 65 72 53 | := 1 to| HeaderS|
|00002160| 69 7a 65 20 44 4f 09 09 | 7b 20 57 72 69 74 65 20 |ize DO..|{ Write |
|00002170| 74 68 65 20 68 65 61 64 | 65 72 20 61 73 20 61 6c |the head|er as al|
|00002180| 6c 20 7a 65 72 6f 73 2e | 20 7d 0d 09 09 20 20 20 |l zeros.| }... |
|00002190| 20 20 64 73 74 42 75 66 | 66 65 72 5b 49 5d 20 3a | dstBuf|fer[I] :|
|000021a0| 3d 20 30 3b 0d 09 09 65 | 72 72 43 6f 64 65 20 3a |= 0;...e|rrCode :|
|000021b0| 3d 20 46 53 57 72 69 74 | 65 28 64 73 74 46 69 6c |= FSWrit|e(dstFil|
|000021c0| 65 2c 20 48 65 61 64 65 | 72 53 69 7a 65 2c 20 40 |e, Heade|rSize, @|
|000021d0| 64 73 74 42 75 66 66 65 | 72 29 3b 0d 09 09 49 46 |dstBuffe|r);...IF|
|000021e0| 20 65 72 72 43 6f 64 65 | 20 3c 3e 20 6e 6f 45 72 | errCode| <> noEr|
|000021f0| 72 20 54 48 45 4e 20 45 | 78 69 74 54 6f 53 68 65 |r THEN E|xitToShe|
|00002200| 6c 6c 3b 0d 09 09 7b 20 | 4e 6f 77 20 67 6f 20 69 |ll;...{ |Now go i|
|00002210| 6e 74 6f 20 61 20 6c 6f | 6f 70 20 77 68 65 72 65 |nto a lo|op where|
|00002220| 20 77 65 20 70 61 63 6b | 20 65 61 63 68 20 6c 69 | we pack| each li|
|00002230| 6e 65 20 6f 66 20 64 61 | 74 61 20 69 6e 74 6f 20 |ne of da|ta into |
|00002240| 74 68 65 20 62 75 66 66 | 65 72 2c 0d 09 09 20 20 |the buff|er,... |
|00002250| 74 68 65 6e 20 77 72 69 | 74 65 20 74 68 61 74 20 |then wri|te that |
|00002260| 64 61 74 61 20 74 6f 20 | 74 68 65 20 66 69 6c 65 |data to |the file|
|00002270| 2e 20 57 65 20 61 72 65 | 20 75 73 69 6e 67 20 74 |. We are| using t|
|00002280| 68 65 20 6c 69 6e 65 20 | 63 6f 75 6e 74 20 6f 66 |he line |count of|
|00002290| 20 37 32 0d 09 09 20 20 | 69 6e 20 6f 72 64 65 72 | 72... |in order|
|000022a0| 20 74 6f 20 6d 61 6b 65 | 20 74 68 65 20 66 69 6c | to make| the fil|
|000022b0| 65 20 72 65 61 64 61 62 | 6c 65 20 62 79 20 4d 61 |e readab|le by Ma|
|000022c0| 63 50 61 69 6e 74 2e 20 | 4e 6f 74 65 20 74 68 61 |cPaint. |Note tha|
|000022d0| 74 20 74 68 65 0d 09 09 | 20 20 50 61 63 6b 2f 55 |t the...| Pack/U|
|000022e0| 6e 50 61 63 6b 42 69 74 | 73 20 63 61 6e 20 62 65 |nPackBit|s can be|
|000022f0| 20 75 73 65 64 20 66 6f | 72 20 6f 74 68 65 72 20 | used fo|r other |
|00002300| 70 75 72 70 6f 73 65 73 | 2e 20 7d 0d 09 09 73 72 |purposes|. }...sr|
|00002310| 63 50 74 72 20 3a 3d 20 | 74 68 65 42 69 74 4d 61 |cPtr := |theBitMa|
|00002320| 70 2e 62 61 73 65 41 64 | 64 72 3b 20 09 09 7b 20 |p.baseAd|dr; ..{ |
|00002330| 70 6f 69 6e 74 20 61 74 | 20 6f 75 72 20 70 69 63 |point at| our pic|
|00002340| 74 75 72 65 20 09 09 09 | 09 09 09 09 09 20 20 42 |ture ...|..... B|
|00002350| 69 74 4d 61 70 20 7d 0d | 09 09 46 4f 52 20 73 63 |itMap }.|..FOR sc|
|00002360| 61 6e 4c 69 6e 65 20 3a | 3d 20 31 20 74 6f 20 37 |anLine :|= 1 to 7|
|00002370| 32 30 20 44 4f 0d 09 09 | 20 20 20 20 20 42 45 47 |20 DO...| BEG|
|00002380| 49 4e 0d 09 09 20 20 20 | 20 20 20 20 20 64 73 74 |IN... | dst|
|00002390| 50 74 72 20 3a 3d 20 40 | 64 73 74 42 75 66 66 65 |Ptr := @|dstBuffe|
|000023a0| 72 3b 20 09 09 7b 20 72 | 65 73 65 74 20 74 68 65 |r; ..{ r|eset the|
|000023b0| 20 70 6f 69 6e 74 65 72 | 20 74 6f 20 09 09 09 09 | pointer| to ....|
|000023c0| 09 09 09 09 20 20 62 6f | 74 74 6f 6d 20 7d 0d 09 |.... bo|ttom }..|
|000023d0| 09 20 20 20 20 20 20 20 | 20 50 61 63 6b 42 69 74 |. | PackBit|
|000023e0| 73 28 73 72 63 50 74 72 | 2c 20 64 73 74 50 74 72 |s(srcPtr|, dstPtr|
|000023f0| 2c 20 37 32 29 3b 20 09 | 09 7b 20 62 75 6d 70 73 |, 72); .|.{ bumps|
|00002400| 20 62 6f 74 68 20 70 74 | 72 73 20 7d 0d 09 09 20 | both pt|rs }... |
|00002410| 20 20 20 20 20 20 20 64 | 73 74 53 69 7a 65 20 3a | d|stSize :|
|00002420| 3d 20 4f 52 44 28 64 73 | 74 50 74 72 29 2d 4f 52 |= ORD(ds|tPtr)-OR|
|00002430| 44 28 40 64 73 74 42 75 | 66 66 65 72 29 3b 09 7b |D(@dstBu|ffer);.{|
|00002440| 20 63 61 6c 63 20 70 61 | 63 6b 65 64 20 73 69 7a | calc pa|cked siz|
|00002450| 65 20 7d 0d 09 09 20 20 | 20 20 20 20 20 20 65 72 |e }... | er|
|00002460| 72 43 6f 64 65 20 3a 3d | 20 46 53 57 72 69 74 65 |rCode :=| FSWrite|
|00002470| 28 64 73 74 46 69 6c 65 | 2c 20 64 73 74 53 69 7a |(dstFile|, dstSiz|
|00002480| 65 2c 20 40 64 73 74 42 | 75 66 66 65 72 29 3b 0d |e, @dstB|uffer);.|
|00002490| 09 09 20 20 20 20 20 20 | 20 20 49 46 20 65 72 72 |.. | IF err|
|000024a0| 43 6f 64 65 20 3c 3e 20 | 6e 6f 45 72 72 20 54 48 |Code <> |noErr TH|
|000024b0| 45 4e 20 45 78 69 74 54 | 6f 53 68 65 6c 6c 3b 0d |EN ExitT|oShell;.|
|000024c0| 09 09 20 20 20 20 20 45 | 4e 44 3b 0d 09 09 65 72 |.. E|ND;...er|
|000024d0| 72 43 6f 64 65 20 3a 3d | 20 46 53 43 6c 6f 73 65 |rCode :=| FSClose|
|000024e0| 28 64 73 74 46 69 6c 65 | 29 3b 09 09 7b 20 43 6c |(dstFile|);..{ Cl|
|000024f0| 6f 73 65 20 74 68 65 20 | 66 69 6c 65 20 77 65 20 |ose the |file we |
|00002500| 6a 75 73 74 20 09 09 09 | 09 09 09 09 09 20 20 77 |just ...|..... w|
|00002510| 72 6f 74 65 2e 20 7d 0d | 09 09 49 46 20 65 72 72 |rote. }.|..IF err|
|00002520| 43 6f 64 65 20 3c 3e 20 | 6e 6f 45 72 72 20 54 48 |Code <> |noErr TH|
|00002530| 45 4e 20 45 78 69 74 54 | 6f 53 68 65 6c 6c 3b 0d |EN ExitT|oShell;.|
|00002540| 09 45 4e 44 3b 0d 46 75 | 72 74 68 65 72 20 52 65 |.END;.Fu|rther Re|
|00002550| 66 65 72 65 6e 63 65 3a | 0d a5 09 49 6e 73 69 64 |ference:|...Insid|
|00002560| 65 20 4d 61 63 69 6e 74 | 6f 73 68 2c 20 56 6f 6c |e Macint|osh, Vol|
|00002570| 75 6d 65 20 49 2d 31 33 | 35 2c 20 51 75 69 63 6b |ume I-13|5, Quick|
|00002580| 44 72 61 77 0d a5 09 49 | 6e 73 69 64 65 20 4d 61 |Draw...I|nside Ma|
|00002590| 63 69 6e 74 6f 73 68 2c | 20 56 6f 6c 75 6d 65 20 |cintosh,| Volume |
|000025a0| 49 2d 34 36 35 2c 20 54 | 6f 6f 6c 62 6f 78 20 55 |I-465, T|oolbox U|
|000025b0| 74 69 6c 69 74 69 65 73 | 0d a5 09 49 6e 73 69 64 |tilities|...Insid|
|000025c0| 65 20 4d 61 63 69 6e 74 | 6f 73 68 2c 20 56 6f 6c |e Macint|osh, Vol|
|000025d0| 75 6d 65 20 49 49 2d 37 | 37 2c 20 54 68 65 20 46 |ume II-7|7, The F|
|000025e0| 69 6c 65 20 4d 61 6e 61 | 67 65 72 0d 4d 61 63 50 |ile Mana|ger.MacP|
|000025f0| 61 69 6e 74 20 69 73 20 | 61 20 72 65 67 69 73 74 |aint is |a regist|
|00002600| 65 72 65 64 20 74 72 61 | 64 65 6d 61 72 6b 20 6f |ered tra|demark o|
|00002610| 66 20 43 6c 61 72 69 73 | 20 43 6f 72 70 6f 72 61 |f Claris| Corpora|
|00002620| 74 69 6f 6e 2e 0d 14 2a | 00 00 00 00 03 48 02 52 |tion...*|.....H.R|
|00002630| 00 11 02 ff 0c 00 ff ff | ff ff 00 00 00 00 00 00 |........|........|
|00002640| 00 00 02 52 00 00 03 48 | 00 00 00 00 00 00 00 a0 |...R...H|........|
|00002650| 00 82 00 1e 00 01 00 0a | 00 2f 00 5a 00 81 02 23 |........|./.Z...#|
|00002660| 00 07 00 00 00 00 00 08 | 00 0a 00 09 30 49 88 3a |........|....0I.:|
|00002670| b5 9c f0 39 00 22 00 7b | 02 1a 00 00 00 09 ff ff |...9.".{|........|
|00002680| ff ff ff ff ff ff 00 23 | 00 00 00 a0 00 c4 00 a1 |.......#|........|
|00002690| 00 64 00 0a 4f 4e 4c 4e | 00 66 00 00 01 fe 00 a0 |.d..ONLN|.f......|
|000026a0| 00 8c 00 a1 00 64 00 31 | 64 72 77 32 00 02 01 c9 |.....d.1|drw2....|
|000026b0| 00 2d 01 e1 01 5f 00 00 | 80 00 00 00 00 00 00 00 |.-..._..|........|
|000026c0| 00 00 00 00 00 00 00 00 | 00 00 ff ff ff ff ff ff |........|........|
|000026d0| 00 01 00 00 01 8f 00 00 | 00 00 00 a1 00 96 00 0c |........|........|
|000026e0| 01 00 00 00 02 78 00 00 | 00 00 00 00 00 a1 00 64 |.....x..|.......d|
|000026f0| 00 10 64 72 77 32 00 3a | 00 05 00 00 00 00 00 01 |..drw2.:|........|
|00002700| 00 00 00 a1 00 64 00 0e | 64 72 77 32 00 3a 00 02 |.....d..|drw2.:..|
|00002710| 00 24 00 00 00 00 00 a1 | 00 64 00 34 64 72 77 32 |.$......|.d.4drw2|
|00002720| 00 3a 00 01 00 03 01 00 | 00 18 00 00 00 00 00 00 |.:......|........|
|00002730| 00 00 00 00 00 01 00 01 | 00 01 00 01 00 00 00 00 |........|........|
|00002740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002750| 00 a1 00 9a 00 08 ff fa | 00 00 00 97 40 00 00 a0 |........|....@...|
|00002760| 00 98 00 2c 00 08 00 14 | 05 54 69 6d 65 73 00 03 |...,....|.Times..|
|00002770| 00 14 00 04 01 00 00 0d | 00 18 00 2e 00 04 00 00 |........|........|
|00002780| 01 00 00 10 00 52 01 c9 | 00 52 01 c9 00 2b 5d 42 |.....R..|.R...+]B|
|00002790| 13 4e 65 77 20 54 65 63 | 68 6e 69 63 61 6c 20 4e |.New Tec|hnical N|
|000027a0| 6f 74 65 73 00 a0 00 99 | 00 a1 00 64 00 08 64 72 |otes....|...d..dr|
|000027b0| 77 32 00 3a 00 04 00 a1 | 14 e3 00 02 00 01 00 a0 |w2.:....|........|
|000027c0| 00 97 00 a1 00 64 00 31 | 64 72 77 32 00 02 02 06 |.....d.1|drw2....|
|000027d0| 01 65 02 19 01 f4 00 00 | 80 00 00 00 00 00 00 00 |.e......|........|
|000027e0| 00 00 00 00 00 00 00 00 | 00 00 ff ff ff ff ff ff |........|........|
|000027f0| 00 01 00 00 01 50 00 00 | 00 00 00 a1 00 96 00 0c |.....P..|........|
|00002800| 01 00 00 00 02 78 00 00 | 00 00 00 00 00 a1 00 64 |.....x..|.......d|
|00002810| 00 10 64 72 77 32 00 3a | 00 05 00 00 00 00 00 01 |..drw2.:|........|
|00002820| 00 00 00 a1 00 64 00 0e | 64 72 77 32 00 3a 00 02 |.....d..|drw2.:..|
|00002830| 00 24 00 00 00 00 00 a1 | 00 64 00 34 64 72 77 32 |.$......|.d.4drw2|
|00002840| 00 3a 00 01 00 03 00 00 | 00 12 00 00 00 00 00 00 |.:......|........|
|00002850| 00 00 00 00 00 01 00 01 | 00 01 00 01 00 00 00 00 |........|........|
|00002860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002870| 00 a1 00 9a 00 08 ff fb | 80 00 00 45 c0 00 00 a0 |........|...E....|
|00002880| 00 98 00 04 00 00 00 0d | 00 12 00 28 00 7b 01 95 |........|...(.{..|
|00002890| 11 44 65 76 65 6c 6f 70 | 65 72 20 53 75 70 70 6f |.Develop|er Suppo|
|000028a0| 72 74 00 a0 00 99 00 a1 | 00 64 00 08 64 72 77 32 |rt......|.d..drw2|
|000028b0| 00 3a 00 04 00 a1 14 e3 | 00 02 00 01 00 a0 00 97 |.:......|........|
|000028c0| 00 a1 00 64 00 60 64 72 | 77 32 00 03 02 00 00 2d |...d.`dr|w2.....-|
|000028d0| 02 00 01 ef 00 00 00 00 | 00 00 00 00 02 02 00 00 |........|........|
|000028e0| 00 00 00 00 00 00 00 00 | ff ff ff ff ff ff 00 01 |........|........|
|000028f0| 00 01 08 4b 00 00 00 00 | 02 00 01 ef 02 00 00 2d |...K....|.......-|
|00002900| 00 00 00 00 00 00 00 00 | 00 01 00 14 00 0c 00 03 |........|........|
|00002910| 00 02 00 00 00 5a 00 01 | 00 00 00 02 00 00 00 03 |.....Z..|........|
|00002920| 00 0c 00 00 00 00 00 07 | 00 02 00 02 00 08 00 08 |........|........|
|00002930| 00 20 00 66 02 1c 00 66 | 00 5a 00 a1 00 64 00 31 |. .f...f|.Z...d.1|
|00002940| 64 72 77 32 00 02 01 ca | 01 c0 01 fa 01 e9 00 00 |drw2....|........|
|00002950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002960| 00 00 ff ff ff ff ff ff | 00 01 00 00 01 4b 00 00 |........|.....K..|
|00002970| 00 00 00 a1 00 96 00 0c | 01 00 00 00 02 78 00 00 |........|.....x..|
|00002980| 00 00 00 00 00 a1 00 64 | 00 10 64 72 77 32 00 3a |.......d|..drw2.:|
|00002990| 00 05 00 00 00 00 00 01 | 00 00 00 a1 00 64 00 0e |........|.....d..|
|000029a0| 64 72 77 32 00 3a 00 02 | 00 24 00 00 00 00 00 a1 |drw2.:..|.$......|
|000029b0| 00 64 00 34 64 72 77 32 | 00 3a 00 01 00 03 00 00 |.d.4drw2|.:......|
|000029c0| 00 30 00 00 00 00 00 00 | 00 00 00 00 00 01 00 01 |.0......|........|
|000029d0| 00 01 00 01 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000029e0| 00 00 00 00 00 00 00 00 | 00 a1 00 9a 00 08 ff f4 |........|........|
|000029f0| 00 00 00 13 80 00 00 a0 | 00 98 00 0d 00 30 00 28 |........|.....0.(|
|00002a00| 00 55 01 ef 01 f0 00 a0 | 00 99 00 a1 00 64 00 08 |.U......|.....d..|
|00002a10| 64 72 77 32 00 3a 00 04 | 00 a1 14 e3 00 02 00 01 |drw2.:..|........|
|00002a20| 00 a0 00 97 00 a1 00 64 | 00 31 64 72 77 32 00 02 |.......d|.1drw2..|
|00002a30| 01 ef 01 e6 01 fa 01 f0 | 00 00 00 00 00 00 00 00 |........|........|
|00002a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 ff ff ff ff |........|........|
|00002a50| ff ff 00 01 00 00 01 00 | 00 00 00 00 00 a1 00 96 |........|........|
|00002a60| 00 0c 01 00 00 00 02 78 | 00 00 00 00 00 00 00 a1 |.......x|........|
|00002a70| 00 64 00 10 64 72 77 32 | 00 3a 00 05 00 00 00 00 |.d..drw2|.:......|
|00002a80| 00 01 00 00 00 a1 00 64 | 00 0e 64 72 77 32 00 3a |.......d|..drw2.:|
|00002a90| 00 02 00 24 00 00 00 00 | 00 a1 00 64 00 34 64 72 |...$....|...d.4dr|
|00002aa0| 77 32 00 3a 00 01 00 03 | 00 00 00 09 00 00 00 00 |w2.:....|........|
|00002ab0| 00 00 00 00 00 00 00 01 | 00 01 00 01 00 01 00 00 |........|........|
|00002ac0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ad0| 00 00 00 a1 00 9a 00 08 | ff fd 80 00 00 04 00 00 |........|........|
|00002ae0| 00 a0 00 98 00 0d 00 09 | 00 2b 26 09 01 a8 00 a0 |........|.+&.....|
|00002af0| 00 99 00 a1 00 64 00 08 | 64 72 77 32 00 3a 00 04 |.....d..|drw2.:..|
|00002b00| 00 a1 14 e3 00 02 00 01 | 00 a0 00 97 00 a1 00 64 |........|.......d|
|00002b10| 00 31 64 72 77 32 00 02 | 01 e5 00 2d 01 f8 00 79 |.1drw2..|...-...y|
|00002b20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b30| 00 00 00 00 ff ff ff ff | ff ff 00 01 00 01 01 00 |........|........|
|00002b40| 00 00 01 00 00 a1 00 96 | 00 0c 01 00 00 00 02 78 |........|.......x|
|00002b50| 00 00 00 00 00 00 00 a1 | 00 64 00 10 64 72 77 32 |........|.d..drw2|
|00002b60| 00 3a 00 05 00 00 00 00 | 00 01 00 00 00 a1 00 64 |.:......|.......d|
|00002b70| 00 0e 64 72 77 32 00 3a | 00 02 00 24 00 00 00 00 |..drw2.:|...$....|
|00002b80| 00 a1 00 64 00 34 64 72 | 77 32 00 3a 00 01 00 03 |...d.4dr|w2.:....|
|00002b90| 00 00 00 12 00 00 00 00 | 00 00 00 00 00 00 00 01 |........|........|
|00002ba0| 00 01 00 01 00 01 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bb0| 00 00 00 00 00 00 00 00 | 00 00 00 a1 00 9a 00 08 |........|........|
|00002bc0| ff fb 80 00 00 25 00 00 | 00 a0 00 98 00 0d 00 12 |.....%..|........|
|00002bd0| 00 28 00 5a 00 5c 09 4d | 61 63 69 6e 74 6f 73 68 |.(.Z.\.M|acintosh|
|00002be0| 00 a0 00 99 00 a1 00 64 | 00 08 64 72 77 32 00 3a |.......d|..drw2.:|
|00002bf0| 00 04 00 a1 14 e3 00 02 | 00 01 00 a0 00 97 00 a0 |........|........|
|00002c00| 00 8d 00 a1 00 64 00 06 | 64 72 77 32 00 44 00 a0 |.....d..|drw2.D..|
|00002c10| 00 83 00 01 00 0a 00 00 | 00 00 03 48 02 52 00 04 |........|...H.R..|
|00002c20| 01 00 00 2e 00 04 00 00 | 00 00 00 10 00 01 00 01 |........|........|
|00002c30| 00 01 00 01 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00002c40| 00 00 00 8d 00 5a 00 a0 | 01 84 00 28 00 9b 00 5a |.....Z..|...(...Z|
|00002c50| 20 50 54 20 32 34 20 2d | 20 4d 61 63 50 61 69 6e | PT 24 -| MacPain|
|00002c60| 74 20 44 6f 63 75 6d 65 | 6e 74 20 46 6f 72 6d 61 |t Docume|nt Forma|
|00002c70| 74 00 00 0d 00 0e 00 a1 | 00 64 00 10 4f 4e 4c 4e |t.......|.d..ONLN|
|00002c80| 00 64 00 21 00 9f 00 5a | 00 ae 00 d6 00 2a 10 11 |.d.!...Z|.....*..|
|00002c90| 50 6c 61 74 66 6f 72 6d | 73 20 26 20 54 6f 6f 6c |Platform|s & Tool|
|00002ca0| 73 00 00 04 00 00 00 0d | 00 0c 00 a1 00 64 00 10 |s.......|.....d..|
|00002cb0| 4f 4e 4c 4e 00 64 00 34 | 00 ba 00 5a 00 c6 00 92 |ONLN.d.4|...Z....|
|00002cc0| 00 2a 18 0b 52 65 76 69 | 73 65 64 20 62 79 3a 00 |.*..Revi|sed by:.|
|00002cd0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 00 40 00 ba |...d..ON|LN.d.@..|
|00002ce0| 00 a2 00 c6 00 d8 00 29 | 48 0a 4a 69 6d 20 52 65 |.......)|H.Jim Re|
|00002cf0| 65 6b 65 73 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |ekes...d|..ONLN.d|
|00002d00| 00 4b 00 ba 01 eb 00 c6 | 02 1c 00 28 00 c3 01 eb |.K......|...(....|
|00002d10| 09 4a 75 6e 65 20 31 39 | 38 39 00 a1 00 64 00 10 |.June 19|89...d..|
|00002d20| 4f 4e 4c 4e 00 64 00 55 | 00 c6 00 5a 00 d2 00 8f |ONLN.d.U|...Z....|
|00002d30| 00 28 00 cf 00 5a 0b 57 | 72 69 74 74 65 6e 20 62 |.(...Z.W|ritten b|
|00002d40| 79 3a 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 00 61 |y:...d..|ONLN.d.a|
|00002d50| 00 c6 00 a2 00 d2 00 e1 | 00 29 48 0d 42 69 6c 6c |........|.)H.Bill|
|00002d60| 20 41 74 6b 69 6e 73 6f | 6e 00 00 a1 00 64 00 10 | Atkinso|n....d..|
|00002d70| 4f 4e 4c 4e 00 64 00 6f | 00 c6 02 04 00 d2 02 1c |ONLN.d.o|........|
|00002d80| 00 28 00 cf 02 04 04 31 | 39 38 33 00 00 06 00 02 |.(.....1|983.....|
|00002d90| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 00 74 |.....d..|ONLN.d.t|
|00002da0| 00 de 00 5a 00 ea 00 74 | 00 28 00 e7 00 5a 05 54 |...Z...t|.(...Z.T|
|00002db0| 68 69 73 20 00 06 00 03 | 00 00 00 a1 00 64 00 10 |his ....|.....d..|
|00002dc0| 4f 4e 4c 4e 00 64 00 79 | 00 de 00 74 00 ea 02 1c |ONLN.d.y|...t....|
|00002dd0| 00 29 1a 50 54 65 63 68 | 6e 69 63 61 6c 20 4e 6f |.).PTech|nical No|
|00002de0| 74 65 20 64 65 73 63 72 | 69 62 65 73 20 74 68 65 |te descr|ibes the|
|00002df0| 20 69 6e 74 65 72 6e 61 | 6c 20 66 6f 72 6d 61 74 | interna|l format|
|00002e00| 20 6f 66 20 61 20 4d 61 | 63 50 61 69 6e 74 a8 20 | of a Ma|cPaint. |
|00002e10| 64 6f 63 75 6d 65 6e 74 | 2c 20 77 68 69 63 68 20 |document|, which |
|00002e20| 69 73 20 61 00 06 00 02 | 00 00 00 a1 00 64 00 10 |is a....|.....d..|
|00002e30| 4f 4e 4c 4e 00 64 00 ca | 00 ea 00 5a 00 f6 02 0e |ONLN.d..|...Z....|
|00002e40| 00 28 00 f3 00 5a 55 73 | 74 61 6e 64 61 72 64 20 |.(...ZUs|tandard |
|00002e50| 75 73 65 64 20 62 79 20 | 6d 61 6e 79 20 6f 74 68 |used by |many oth|
|00002e60| 65 72 20 70 72 6f 67 72 | 61 6d 73 2e 20 20 54 68 |er progr|ams. Th|
|00002e70| 69 73 20 64 65 73 63 72 | 69 70 74 69 6f 6e 20 69 |is descr|iption i|
|00002e80| 73 20 74 68 65 20 73 61 | 6d 65 20 61 73 20 74 68 |s the sa|me as th|
|00002e90| 61 74 20 66 6f 75 6e 64 | 20 69 6e 20 00 06 00 03 |at found| in ....|
|00002ea0| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 1f |.....d..|ONLN.d..|
|00002eb0| 00 ea 02 0e 00 f6 02 1c | 00 28 00 f3 02 0e 03 74 |........|.(.....t|
|00002ec0| 68 65 00 06 00 00 00 00 | 00 a1 00 64 00 10 4f 4e |he......|...d..ON|
|00002ed0| 4c 4e 00 64 01 23 00 f6 | 00 5a 01 02 01 29 00 28 |LN.d.#..|.Z...).(|
|00002ee0| 00 ff 00 5a 2b d2 4d 61 | 63 69 6e 74 6f 73 68 20 |...Z+.Ma|cintosh |
|00002ef0| 4d 69 73 63 65 6c 6c 61 | 6e 65 6f 75 73 d3 20 73 |Miscella|neous. s|
|00002f00| 65 63 74 69 6f 6e 20 6f | 66 20 65 61 72 6c 79 20 |ection o|f early |
|00002f10| 00 04 02 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00002f20| 01 4e 00 f6 01 29 01 02 | 01 7a 00 29 cf 10 49 6e |.N...)..|.z.)..In|
|00002f30| 73 69 64 65 20 4d 61 63 | 69 6e 74 6f 73 68 00 04 |side Mac|intosh..|
|00002f40| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 5e |.....d..|ONLN.d.^|
|00002f50| 00 f6 01 7a 01 02 01 a9 | 00 29 51 0a 20 76 65 72 |...z....|.)Q. ver|
|00002f60| 73 69 6f 6e 73 2e 00 04 | 01 00 00 a1 00 64 00 10 |sions...|.....d..|
|00002f70| 4f 4e 4c 4e 00 64 01 69 | 01 02 00 5a 01 0e 00 ff |ONLN.d.i|...Z....|
|00002f80| 00 28 01 0b 00 5a 1b 43 | 68 61 6e 67 65 73 20 73 |.(...Z.C|hanges s|
|00002f90| 69 6e 63 65 20 4f 63 74 | 6f 62 65 72 20 31 39 38 |ince Oct|ober 198|
|00002fa0| 38 3a 00 04 00 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |8:......|.d..ONLN|
|00002fb0| 00 64 01 84 01 02 00 ff | 01 0e 01 9e 00 29 a5 21 |.d......|.....).!|
|00002fc0| 20 20 46 69 78 65 64 20 | 62 75 67 73 20 69 6e 20 | Fixed |bugs in |
|00002fd0| 74 68 65 20 65 78 61 6d | 70 6c 65 20 63 6f 64 65 |the exam|ple code|
|00002fe0| 2e 00 00 07 00 01 00 01 | 00 20 01 1a 00 58 01 1a |........|. ...X..|
|00002ff0| 02 1d 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 a6 |.....d..|ONLN.d..|
|00003000| 01 27 00 5a 01 33 00 e8 | 00 28 01 30 00 5a 1c 4d |.'.Z.3..|.(.0.Z.M|
|00003010| 61 63 50 61 69 6e 74 20 | 64 6f 63 75 6d 65 6e 74 |acPaint |document|
|00003020| 73 20 61 72 65 20 65 61 | 73 79 20 00 00 06 00 01 |s are ea|sy .....|
|00003030| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 c2 |.....d..|ONLN.d..|
|00003040| 01 27 00 e8 01 33 02 1c | 00 29 8e 3e 74 6f 20 72 |.'...3..|.).>to r|
|00003050| 65 61 64 20 61 6e 64 20 | 77 72 69 74 65 2c 20 61 |ead and |write, a|
|00003060| 6e 64 20 74 68 65 79 20 | 68 61 76 65 20 62 65 63 |nd they |have bec|
|00003070| 6f 6d 65 20 61 20 73 74 | 61 6e 64 61 72 64 20 69 |ome a st|andard i|
|00003080| 6e 74 65 72 63 68 61 6e | 67 65 00 06 00 02 00 00 |nterchan|ge......|
|00003090| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 02 01 01 33 |...d..ON|LN.d...3|
|000030a0| 00 5a 01 3f 01 81 00 28 | 01 3c 00 5a 39 66 6f 72 |.Z.?...(|.<.Z9for|
|000030b0| 6d 61 74 20 66 6f 72 20 | 66 75 6c 6c d0 70 61 67 |mat for |full.pag|
|000030c0| 65 20 69 6d 61 67 65 73 | 20 6f 6e 20 74 68 65 20 |e images| on the |
|000030d0| 4d 61 63 69 6e 74 6f 73 | 68 2e 20 20 54 68 69 73 |Macintos|h. This|
|000030e0| 20 4e 6f 74 65 20 00 06 | 00 03 00 00 00 a1 00 64 | Note ..|.......d|
|000030f0| 00 10 4f 4e 4c 4e 00 64 | 02 3a 01 33 01 81 01 3f |..ONLN.d|.:.3...?|
|00003100| 02 1c 00 28 01 3c 01 81 | 1f 64 65 73 63 72 69 62 |...(.<..|.describ|
|00003110| 65 73 20 74 68 65 20 4d | 61 63 50 61 69 6e 74 20 |es the M|acPaint |
|00003120| 69 6e 74 65 72 6e 61 6c | 00 06 00 00 00 00 00 a1 |internal|........|
|00003130| 00 64 00 10 4f 4e 4c 4e | 00 64 02 5a 01 3f 00 5a |.d..ONLN|.d.Z.?.Z|
|00003140| 01 4b 01 c8 00 28 01 48 | 00 5a 4f 64 6f 63 75 6d |.K...(.H|.ZOdocum|
|00003150| 65 6e 74 20 66 6f 72 6d | 61 74 20 74 6f 20 68 65 |ent form|at to he|
|00003160| 6c 70 20 64 65 76 65 6c | 6f 70 65 72 73 20 67 65 |lp devel|opers ge|
|00003170| 6e 65 72 61 74 65 20 61 | 6e 64 20 69 6e 74 65 72 |nerate a|nd inter|
|00003180| 70 72 65 74 20 66 69 6c | 65 73 20 69 6e 20 74 68 |pret fil|es in th|
|00003190| 69 73 20 66 6f 72 6d 61 | 74 2e 00 06 00 01 00 00 |is forma|t.......|
|000031a0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 02 aa 01 57 |...d..ON|LN.d...W|
|000031b0| 00 5a 01 63 02 0a 00 2a | 18 56 4d 61 63 50 61 69 |.Z.c...*|.VMacPai|
|000031c0| 6e 74 20 64 6f 63 75 6d | 65 6e 74 73 20 68 61 76 |nt docum|ents hav|
|000031d0| 65 20 61 20 66 69 6c 65 | 20 74 79 70 65 20 6f 66 |e a file| type of|
|000031e0| 20 d2 50 4e 54 47 2c d3 | 20 61 6e 64 20 73 69 6e | .PNTG,.| and sin|
|000031f0| 63 65 20 74 68 65 79 20 | 75 73 65 20 6f 6e 6c 79 |ce they |use only|
|00003200| 20 74 68 65 20 64 61 74 | 61 20 66 6f 72 6b 2c 20 | the dat|a fork, |
|00003210| 00 06 00 02 00 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |........|.d..ONLN|
|00003220| 00 64 03 00 01 57 02 0a | 01 63 02 1c 00 28 01 60 |.d...W..|.c...(.`|
|00003230| 02 0a 03 79 6f 75 00 06 | 00 03 00 00 00 a1 00 64 |...you..|.......d|
|00003240| 00 10 4f 4e 4c 4e 00 64 | 03 04 01 63 00 5a 01 6f |..ONLN.d|...c.Z.o|
|00003250| 00 94 00 28 01 6c 00 5a | 0b 63 61 6e 20 69 67 6e |...(.l.Z|.can ign|
|00003260| 6f 72 65 20 00 06 00 04 | 00 00 00 a1 00 64 00 10 |ore ....|.....d..|
|00003270| 4f 4e 4c 4e 00 64 03 0f | 01 63 00 94 01 6f 02 1c |ONLN.d..|.c...o..|
|00003280| 00 29 3a 48 74 68 65 20 | 72 65 73 6f 75 72 63 65 |.):Hthe |resource|
|00003290| 20 66 6f 72 6b 2e 20 20 | 54 68 65 20 64 61 74 61 | fork. |The data|
|000032a0| 20 66 6f 72 6b 20 63 6f | 6e 74 61 69 6e 73 20 61 | fork co|ntains a|
|000032b0| 20 35 31 32 d0 62 79 74 | 65 20 68 65 61 64 65 72 | 512.byt|e header|
|000032c0| 20 66 6f 6c 6c 6f 77 65 | 64 20 62 79 00 06 00 01 | followe|d by....|
|000032d0| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 03 58 |.....d..|ONLN.d.X|
|000032e0| 01 6f 00 5a 01 7b 02 17 | 00 28 01 78 00 5a 5b 63 |.o.Z.{..|.(.x.Z[c|
|000032f0| 6f 6d 70 72 65 73 73 65 | 64 20 64 61 74 61 20 77 |ompresse|d data w|
|00003300| 68 69 63 68 20 72 65 70 | 72 65 73 65 6e 74 73 20 |hich rep|resents |
|00003310| 61 20 73 69 6e 67 6c 65 | 20 62 69 74 6d 61 70 20 |a single| bitmap |
|00003320| 28 35 37 36 20 70 69 78 | 65 6c 73 20 77 69 64 65 |(576 pix|els wide|
|00003330| 20 62 79 20 37 32 30 20 | 70 69 78 65 6c 73 20 74 | by 720 |pixels t|
|00003340| 61 6c 6c 29 2e 20 20 41 | 74 20 00 06 00 02 00 00 |all). A|t ......|
|00003350| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 03 b3 01 6f |...d..ON|LN.d...o|
|00003360| 02 17 01 7b 02 1c 00 28 | 01 78 02 17 01 61 00 06 |...{...(|.x...a..|
|00003370| 00 00 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00003380| 03 b5 01 7b 00 5a 01 87 | 02 12 00 28 01 84 00 5a |...{.Z..|...(...Z|
|00003390| 61 72 65 73 6f 6c 75 74 | 69 6f 6e 20 6f 66 20 37 |aresolut|ion of 7|
|000033a0| 32 20 70 69 78 65 6c 73 | 20 70 65 72 20 69 6e 63 |2 pixels| per inc|
|000033b0| 68 2c 20 74 68 69 73 20 | 62 69 74 6d 61 70 20 6f |h, this |bitmap o|
|000033c0| 63 63 75 70 69 65 73 20 | 74 68 65 20 66 75 6c 6c |ccupies |the full|
|000033d0| 20 38 20 69 6e 63 68 20 | 62 79 20 31 30 20 69 6e | 8 inch |by 10 in|
|000033e0| 63 68 20 70 72 69 6e 74 | 61 62 6c 65 20 61 72 65 |ch print|able are|
|000033f0| 61 20 00 06 00 01 00 00 | 00 a1 00 64 00 10 4f 4e |a ......|...d..ON|
|00003400| 4c 4e 00 64 04 16 01 7b | 02 12 01 87 02 1c 00 28 |LN.d...{|.......(|
|00003410| 01 84 02 12 02 6f 66 00 | 00 06 00 00 00 00 00 a1 |.....of.|........|
|00003420| 00 64 00 10 4f 4e 4c 4e | 00 64 04 19 01 87 00 5a |.d..ONLN|.d.....Z|
|00003430| 01 93 01 07 00 28 01 90 | 00 5a 24 61 20 73 74 61 |.....(..|.Z$a sta|
|00003440| 6e 64 61 72 64 20 49 6d | 61 67 65 57 72 69 74 65 |ndard Im|ageWrite|
|00003450| 72 20 70 72 69 6e 74 65 | 72 20 70 61 67 65 2e 00 |r printe|r page..|
|00003460| 00 04 01 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00003470| 04 3e 01 9f 00 5a 01 ab | 00 82 00 2a 18 06 48 65 |.>...Z..|...*..He|
|00003480| 61 64 65 72 00 04 00 00 | 00 a1 00 64 00 10 4f 4e |ader....|...d..ON|
|00003490| 4c 4e 00 64 04 45 01 b7 | 00 5a 01 c3 01 ba 00 2a |LN.d.E..|.Z.....*|
|000034a0| 18 4a 54 68 65 20 66 69 | 72 73 74 20 35 31 32 20 |.JThe fi|rst 512 |
|000034b0| 62 79 74 65 73 20 6f 66 | 20 74 68 65 20 64 6f 63 |bytes of| the doc|
|000034c0| 75 6d 65 6e 74 20 66 6f | 72 6d 20 61 20 68 65 61 |ument fo|rm a hea|
|000034d0| 64 65 72 20 6f 66 20 74 | 68 65 20 66 6f 6c 6c 6f |der of t|he follo|
|000034e0| 77 69 6e 67 20 66 6f 72 | 6d 61 74 3a 00 a1 00 64 |wing for|mat:...d|
|000034f0| 00 10 4f 4e 4c 4e 00 64 | 04 90 01 cf 00 6c 01 db |..ONLN.d|.....l..|
|00003500| 00 70 00 2b 12 18 01 a5 | 00 a1 00 64 00 10 4f 4e |.p.+....|...d..ON|
|00003510| 4c 4e 00 64 04 92 01 cf | 00 79 01 db 01 24 00 29 |LN.d....|.y...$.)|
|00003520| 0d 23 34 d0 62 79 74 65 | 20 76 65 72 73 69 6f 6e |.#4.byte| version|
|00003530| 20 6e 75 6d 62 65 72 20 | 28 64 65 66 61 75 6c 74 | number |(default|
|00003540| 20 3d 20 32 29 00 00 a1 | 00 64 00 10 4f 4e 4c 4e | = 2)...|.d..ONLN|
|00003550| 00 64 04 b6 01 db 00 6c | 01 e7 00 70 00 28 01 e4 |.d.....l|...p.(..|
|00003560| 00 6c 01 a5 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.l.....d|..ONLN.d|
|00003570| 04 b8 01 db 00 79 01 e7 | 01 01 00 29 0d 1c 33 38 |.....y..|...)..38|
|00003580| 2a 38 20 3d 20 33 30 34 | 20 62 79 74 65 73 20 6f |*8 = 304| bytes o|
|00003590| 66 20 70 61 74 74 65 72 | 6e 73 00 a1 00 64 00 10 |f patter|ns...d..|
|000035a0| 4f 4e 4c 4e 00 64 04 d5 | 01 e7 00 6c 01 f3 00 70 |ONLN.d..|...l...p|
|000035b0| 00 28 01 f0 00 6c 01 a5 | 00 a1 00 64 00 10 4f 4e |.(...l..|...d..ON|
|000035c0| 4c 4e 00 64 04 d7 01 e7 | 00 79 01 f3 01 62 00 29 |LN.d....|.y...b.)|
|000035d0| 0d 30 32 30 34 20 75 6e | 75 73 65 64 20 62 79 74 |.0204 un|used byt|
|000035e0| 65 73 20 28 72 65 73 65 | 72 76 65 64 20 66 6f 72 |es (rese|rved for|
|000035f0| 20 66 75 74 75 72 65 20 | 65 78 70 61 6e 73 69 6f | future |expansio|
|00003600| 6e 29 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 05 08 |n)...d..|ONLN.d..|
|00003610| 01 ff 00 5a 02 0b 01 a7 | 00 28 02 08 00 5a 46 41 |...Z....|.(...ZFA|
|00003620| 73 20 61 20 50 61 73 63 | 61 6c 20 72 65 63 6f 72 |s a Pasc|al recor|
|00003630| 64 2c 20 74 68 65 20 64 | 6f 63 75 6d 65 6e 74 20 |d, the d|ocument |
|00003640| 66 6f 72 6d 61 74 20 63 | 6f 75 6c 64 20 6c 6f 6f |format c|ould loo|
|00003650| 6b 20 6c 69 6b 65 20 74 | 68 65 20 66 6f 6c 6c 6f |k like t|he follo|
|00003660| 77 69 6e 67 3a 00 00 2c | 00 0a 00 16 07 43 6f 75 |wing:..,|.....Cou|
|00003670| 72 69 65 72 00 03 00 16 | 00 0d 00 09 00 a1 00 64 |rier....|.......d|
|00003680| 00 10 4f 4e 4c 4e 00 64 | 05 50 02 17 00 7e 02 22 |..ONLN.d|.P...~."|
|00003690| 00 d3 00 2b 24 17 11 4d | 50 48 65 61 64 65 72 20 |...+$..M|PHeader |
|000036a0| 3d 20 52 45 43 4f 52 44 | 00 a1 00 64 00 10 4f 4e |= RECORD|...d..ON|
|000036b0| 4c 4e 00 64 05 64 02 21 | 00 a2 02 2c 00 ca 00 2b |LN.d.d.!|...,...+|
|000036c0| 24 0a 08 56 65 72 73 69 | 6f 6e 3a 00 00 a1 00 64 |$..Versi|on:....d|
|000036d0| 00 10 4f 4e 4c 4e 00 64 | 05 6d 02 21 00 ea 02 2c |..ONLN.d|.m.!...,|
|000036e0| 01 12 00 29 48 08 4c 4f | 4e 47 49 4e 54 3b 00 a1 |...)H.LO|NGINT;..|
|000036f0| 00 64 00 10 4f 4e 4c 4e | 00 64 05 78 02 2b 00 a2 |.d..ONLN|.d.x.+..|
|00003700| 02 36 00 cf 00 28 02 33 | 00 a2 09 50 61 74 41 72 |.6...(.3|...PatAr|
|00003710| 72 61 79 3a 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |ray:...d|..ONLN.d|
|00003720| 05 82 02 2b 00 ea 02 36 | 01 67 00 29 48 19 41 52 |...+...6|.g.)H.AR|
|00003730| 52 41 59 20 5b 31 2e 2e | 33 38 5d 20 6f 66 20 50 |RAY [1..|38] of P|
|00003740| 61 74 74 65 72 6e 3b 00 | 00 a1 00 64 00 10 4f 4e |attern;.|...d..ON|
|00003750| 4c 4e 00 64 05 9e 02 35 | 00 a2 02 40 00 c5 00 28 |LN.d...5|...@...(|
|00003760| 02 3d 00 a2 07 46 75 74 | 75 72 65 3a 00 a1 00 64 |.=...Fut|ure:...d|
|00003770| 00 10 4f 4e 4c 4e 00 64 | 05 a6 02 35 00 ea 02 40 |..ONLN.d|...5...@|
|00003780| 01 9e 00 29 48 24 50 41 | 43 4b 45 44 20 41 52 52 |...)H$PA|CKED ARR|
|00003790| 41 59 20 5b 31 2e 2e 32 | 30 34 5d 20 6f 66 20 53 |AY [1..2|04] of S|
|000037a0| 69 67 6e 65 64 42 79 74 | 65 3b 00 a1 00 64 00 10 |ignedByt|e;...d..|
|000037b0| 4f 4e 4c 4e 00 64 05 cc | 02 3f 00 7e 02 4a 00 92 |ONLN.d..|.?.~.J..|
|000037c0| 00 28 02 47 00 7e 04 45 | 4e 44 3b 00 00 03 00 14 |.(.G.~.E|ND;.....|
|000037d0| 00 0d 00 0c 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|000037e0| 05 d1 02 55 00 5a 02 61 | 01 b5 00 28 02 5e 00 5a |...U.Z.a|...(.^.Z|
|000037f0| 4a 49 66 20 74 68 65 20 | 76 65 72 73 69 6f 6e 20 |JIf the |version |
|00003800| 6e 75 6d 62 65 72 20 69 | 73 20 7a 65 72 6f 2c 20 |number i|s zero, |
|00003810| 74 68 65 20 64 6f 63 75 | 6d 65 6e 74 20 75 73 65 |the docu|ment use|
|00003820| 73 20 64 65 66 61 75 6c | 74 20 70 61 74 74 65 72 |s defaul|t patter|
|00003830| 6e 73 2c 20 73 6f 20 79 | 6f 75 20 00 00 06 00 01 |ns, so y|ou .....|
|00003840| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 06 1b |.....d..|ONLN.d..|
|00003850| 02 55 01 b5 02 61 02 1c | 00 28 02 5e 01 b5 16 63 |.U...a..|.(.^...c|
|00003860| 61 6e 20 69 67 6e 6f 72 | 65 20 74 68 65 20 72 65 |an ignor|e the re|
|00003870| 73 74 20 6f 66 00 00 06 | 00 00 00 00 00 a1 00 64 |st of...|.......d|
|00003880| 00 10 4f 4e 4c 4e 00 64 | 06 32 02 61 00 5a 02 6d |..ONLN.d|.2.a.Z.m|
|00003890| 01 bd 00 28 02 6a 00 5a | 48 74 68 65 20 68 65 61 |...(.j.Z|Hthe hea|
|000038a0| 64 65 72 20 62 6c 6f 63 | 6b 2c 20 61 6e 64 20 69 |der bloc|k, and i|
|000038b0| 66 20 79 6f 75 72 20 70 | 72 6f 67 72 61 6d 20 67 |f your p|rogram g|
|000038c0| 65 6e 65 72 61 74 65 73 | 20 4d 61 63 50 61 69 6e |enerates| MacPain|
|000038d0| 74 20 64 6f 63 75 6d 65 | 6e 74 73 2c 20 79 6f 75 |t docume|nts, you|
|000038e0| 20 00 00 06 00 01 00 00 | 00 a1 00 64 00 10 4f 4e | .......|...d..ON|
|000038f0| 4c 4e 00 64 06 7a 02 61 | 01 bd 02 6d 02 1c 00 28 |LN.d.z.a|...m...(|
|00003900| 02 6a 01 bd 13 63 61 6e | 20 77 72 69 74 65 20 35 |.j...can| write 5|
|00003910| 31 32 20 62 79 74 65 73 | 00 06 00 00 00 00 00 a1 |12 bytes|........|
|00003920| 00 64 00 10 4f 4e 4c 4e | 00 64 06 8e 02 6d 00 5a |.d..ONLN|.d...m.Z|
|00003930| 02 79 01 ab 00 28 02 76 | 00 5a 44 6f 66 20 7a 65 |.y...(.v|.ZDof ze|
|00003940| 72 6f 20 66 6f 72 20 74 | 68 65 20 64 6f 63 75 6d |ro for t|he docum|
|00003950| 65 6e 74 20 68 65 61 64 | 65 72 2e 20 20 4d 6f 73 |ent head|er. Mos|
|00003960| 74 20 70 72 6f 67 72 61 | 6d 73 20 77 68 69 63 68 |t progra|ms which|
|00003970| 20 72 65 61 64 20 4d 61 | 63 50 61 69 6e 74 20 00 | read Ma|cPaint .|
|00003980| 00 06 00 01 00 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |........|.d..ONLN|
|00003990| 00 64 06 d2 02 6d 01 ab | 02 79 02 1c 00 28 02 76 |.d...m..|.y...(.v|
|000039a0| 01 ab 16 64 6f 63 75 6d | 65 6e 74 73 20 63 61 6e |...docum|ents can|
|000039b0| 20 73 6b 69 70 20 74 68 | 65 00 00 06 00 00 00 00 | skip th|e.......|
|000039c0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 06 e9 02 79 |...d..ON|LN.d...y|
|000039d0| 00 5a 02 85 00 c0 00 28 | 02 82 00 5a 14 68 65 61 |.Z.....(|...Z.hea|
|000039e0| 64 65 72 20 77 68 65 6e | 20 72 65 61 64 69 6e 67 |der when| reading|
|000039f0| 2e 00 00 20 02 bd 00 58 | 02 bd 02 1d 00 0d 00 0a |... ...X|........|
|00003a00| 00 2a 53 20 50 54 20 32 | 34 20 2d 20 4d 61 63 50 |.*S PT 2|4 - MacP|
|00003a10| 61 69 6e 74 20 44 6f 63 | 75 6d 65 6e 74 20 46 6f |aint Doc|ument Fo|
|00003a20| 72 6d 61 74 00 28 02 d5 | 02 04 01 31 00 29 05 05 |rmat.(..|...1.)..|
|00003a30| 20 6f 66 20 35 00 00 28 | 02 eb 00 5a 11 50 6c 61 | of 5..(|...Z.Pla|
|00003a40| 74 66 6f 72 6d 73 20 26 | 20 54 6f 6f 6c 73 00 ff |tforms &| Tools..|
|00003a50| 00 a1 00 c0 01 f4 25 25 | 44 53 49 44 49 43 54 3a |......%%|DSIDICT:|
|00003a60| 5f 63 76 0d 63 75 72 72 | 65 6e 74 64 69 63 74 20 |_cv.curr|entdict |
|00003a70| 2f 62 75 20 6b 6e 6f 77 | 6e 20 7b 62 75 7d 69 66 |/bu know|n {bu}if|
|00003a80| 0d 75 73 65 72 64 69 63 | 74 20 2f 5f 63 76 20 6b |.userdic|t /_cv k|
|00003a90| 6e 6f 77 6e 20 6e 6f 74 | 7b 75 73 65 72 64 69 63 |nown not|{userdic|
|00003aa0| 74 20 2f 5f 63 76 20 33 | 30 20 64 69 63 74 20 70 |t /_cv 3|0 dict p|
|00003ab0| 75 74 7d 69 66 0d 5f 63 | 76 20 62 65 67 69 6e 0d |ut}if._c|v begin.|
|00003ac0| 2f 62 64 66 7b 62 69 6e | 64 20 64 65 66 7d 62 69 |/bdf{bin|d def}bi|
|00003ad0| 6e 64 20 64 65 66 0d 63 | 75 72 72 65 6e 74 73 63 |nd def.c|urrentsc|
|00003ae0| 72 65 65 6e 2f 63 73 20 | 65 78 63 68 20 64 65 66 |reen/cs |exch def|
|00003af0| 2f 63 61 20 65 78 63 68 | 20 64 65 66 2f 63 66 20 |/ca exch| def/cf |
|00003b00| 65 78 63 68 20 64 65 66 | 0d 2f 73 65 74 63 6d 79 |exch def|./setcmy|
|00003b10| 6b 63 6f 6c 6f 72 20 77 | 68 65 72 65 7b 2f 73 65 |kcolor w|here{/se|
|00003b20| 74 63 6d 79 6b 63 6f 6c | 6f 72 20 67 65 74 20 2f |tcmykcol|or get /|
|00003b30| 63 76 63 6d 79 6b 20 65 | 78 63 68 20 64 65 66 7d |cvcmyk e|xch def}|
|00003b40| 7b 2f 63 76 63 6d 79 6b | 7b 31 20 73 75 62 20 34 |{/cvcmyk|{1 sub 4|
|00003b50| 20 31 20 72 6f 6c 6c 20 | 33 7b 33 20 69 6e 64 65 | 1 roll |3{3 inde|
|00003b60| 78 20 61 64 64 20 6e 65 | 67 20 64 75 70 20 30 20 |x add ne|g dup 0 |
|00003b70| 6c 74 7b 70 6f 70 20 30 | 7d 69 66 20 33 20 31 20 |lt{pop 0|}if 3 1 |
|00003b80| 72 6f 6c 6c 7d 72 65 70 | 65 61 74 20 73 65 74 72 |roll}rep|eat setr|
|00003b90| 67 62 63 6f 6c 6f 72 20 | 70 6f 70 7d 62 64 66 20 |gbcolor |pop}bdf |
|00003ba0| 7d 69 66 65 6c 73 65 0d | 2f 73 73 7b 2f 2f 63 66 |}ifelse.|/ss{//cf|
|00003bb0| 20 2f 2f 63 61 20 2f 2f | 63 73 20 73 65 74 73 63 | //ca //|cs setsc|
|00003bc0| 72 65 65 6e 7d 62 64 66 | 0d 2f 73 74 67 7b 73 73 |reen}bdf|./stg{ss|
|00003bd0| 20 73 65 74 67 72 61 79 | 7d 62 64 66 0d 2f 73 74 | setgray|}bdf./st|
|00003be0| 72 67 62 7b 73 73 20 73 | 65 74 72 67 62 63 6f 6c |rgb{ss s|etrgbcol|
|00003bf0| 6f 72 7d 62 64 66 0d 2f | 73 74 63 6d 79 6b 7b 73 |or}bdf./|stcmyk{s|
|00003c00| 73 20 63 76 63 6d 79 6b | 7d 62 64 66 0d 2f 6d 69 |s cvcmyk|}bdf./mi|
|00003c10| 6e 31 7b 64 75 70 20 30 | 20 65 71 7b 70 6f 70 20 |n1{dup 0| eq{pop |
|00003c20| 31 7d 69 66 7d 62 64 66 | 0d 65 6e 64 0d 63 75 72 |1}if}bdf|.end.cur|
|00003c30| 72 65 6e 74 64 69 63 74 | 20 2f 62 6e 20 6b 6e 6f |rentdict| /bn kno|
|00003c40| 77 6e 20 7b 62 6e 7d 69 | 66 0d 00 a0 00 bf 12 20 |wn {bn}i|f...... |
|00003c50| 00 00 00 00 03 48 02 52 | 00 11 02 ff 0c 00 ff ff |.....H.R|........|
|00003c60| ff ff 00 00 00 00 00 00 | 00 00 02 52 00 00 03 48 |........|...R...H|
|00003c70| 00 00 00 00 00 00 00 1e | 00 01 00 0a 00 00 00 00 |........|........|
|00003c80| 03 48 02 52 00 2c 00 08 | 00 14 05 54 69 6d 65 73 |.H.R.,..|...Times|
|00003c90| 00 03 00 14 00 0d 00 0a | 00 2e 00 04 00 00 00 00 |........|........|
|00003ca0| 00 2b 36 2d 19 4d 61 63 | 69 6e 74 6f 73 68 20 54 |.+6-.Mac|intosh T|
|00003cb0| 65 63 68 6e 69 63 61 6c | 20 4e 6f 74 65 73 00 20 |echnical| Notes. |
|00003cc0| 00 2f 00 34 00 2f 01 f9 | 00 04 01 00 00 0d 00 0c |./.4./..|........|
|00003cd0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 00 00 00 48 |...d..ON|LN.d...H|
|00003ce0| 00 36 00 54 00 5e 00 2a | 24 06 42 69 74 6d 61 70 |.6.T.^.*|$.Bitmap|
|00003cf0| 00 04 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00003d00| 00 07 00 60 00 36 00 6c | 01 52 00 2a 18 3b 46 6f |...`.6.l|.R.*.;Fo|
|00003d10| 6c 6c 6f 77 69 6e 67 20 | 74 68 65 20 68 65 61 64 |llowing |the head|
|00003d20| 65 72 20 61 72 65 20 37 | 32 30 20 63 6f 6d 70 72 |er are 7|20 compr|
|00003d30| 65 73 73 65 64 20 73 63 | 61 6e 20 6c 69 6e 65 73 |essed sc|an lines|
|00003d40| 20 6f 66 20 64 61 74 61 | 20 00 00 06 00 01 00 00 | of data| .......|
|00003d50| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 00 42 00 60 |...d..ON|LN.d.B.`|
|00003d60| 01 52 00 6c 01 f8 00 28 | 00 69 01 52 20 77 68 69 |.R.l...(|.i.R whi|
|00003d70| 63 68 20 66 6f 72 6d 20 | 74 68 65 20 35 37 36 20 |ch form |the 576 |
|00003d80| 70 69 78 65 6c 20 77 69 | 64 65 20 62 79 00 00 06 |pixel wi|de by...|
|00003d90| 00 00 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00003da0| 00 63 00 6c 00 36 00 78 | 01 ca 00 28 00 75 00 36 |.c.l.6.x|...(.u.6|
|00003db0| 53 37 32 30 20 70 69 78 | 65 6c 20 74 61 6c 6c 20 |S720 pix|el tall |
|00003dc0| 62 69 74 6d 61 70 2e 20 | 20 57 69 74 68 6f 75 74 |bitmap. | Without|
|00003dd0| 20 63 6f 6d 70 72 65 73 | 73 69 6f 6e 2c 20 74 68 | compres|sion, th|
|00003de0| 69 73 20 62 69 74 6d 61 | 70 20 77 6f 75 6c 64 20 |is bitma|p would |
|00003df0| 6f 63 63 75 70 79 20 35 | 31 2c 38 34 30 20 62 79 |occupy 5|1,840 by|
|00003e00| 74 65 73 20 00 06 00 01 | 00 00 00 a1 00 64 00 10 |tes ....|.....d..|
|00003e10| 4f 4e 4c 4e 00 64 00 b6 | 00 6c 01 ca 00 78 01 f8 |ONLN.d..|.l...x..|
|00003e20| 00 28 00 75 01 ca 08 61 | 6e 64 20 63 68 65 77 00 |.(.u...a|nd chew.|
|00003e30| 00 06 00 03 00 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |........|.d..ONLN|
|00003e40| 00 64 00 bf 00 78 00 36 | 00 84 01 ea 00 28 00 81 |.d...x.6|.....(..|
|00003e50| 00 36 52 75 70 20 64 69 | 73 6b 20 73 70 61 63 65 |.6Rup di|sk space|
|00003e60| 20 70 72 65 74 74 79 20 | 66 61 73 74 3b 20 74 79 | pretty |fast; ty|
|00003e70| 70 69 63 61 6c 20 4d 61 | 63 50 61 69 6e 74 20 64 |pical Ma|cPaint d|
|00003e80| 6f 63 75 6d 65 6e 74 73 | 20 63 6f 6d 70 72 65 73 |ocuments| compres|
|00003e90| 73 20 74 6f 20 61 62 6f | 75 74 20 31 30 4b 20 75 |s to abo|ut 10K u|
|00003ea0| 73 69 6e 67 20 00 00 06 | 00 04 00 00 00 a1 00 64 |sing ...|.......d|
|00003eb0| 00 10 4f 4e 4c 4e 00 64 | 01 11 00 78 01 ea 00 84 |..ONLN.d|...x....|
|00003ec0| 01 f8 00 28 00 81 01 ea | 03 74 68 65 00 2c 00 0a |...(....|.the.,..|
|00003ed0| 00 16 07 43 6f 75 72 69 | 65 72 00 03 00 16 00 06 |...Couri|er......|
|00003ee0| 00 01 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00003ef0| 01 15 00 84 00 36 00 90 | 00 75 00 28 00 8e 00 36 |.....6..|.u.(...6|
|00003f00| 09 5f 50 61 63 6b 42 69 | 74 73 00 03 00 14 00 a1 |._PackBi|ts......|
|00003f10| 00 64 00 10 4f 4e 4c 4e | 00 64 01 1e 00 85 00 75 |.d..ONLN|.d.....u|
|00003f20| 00 91 01 4b 00 29 3f 2b | 20 70 72 6f 63 65 64 75 |...K.)?+| procedu|
|00003f30| 72 65 20 74 6f 20 63 6f | 6d 70 72 65 73 73 20 72 |re to co|mpress r|
|00003f40| 75 6e 73 20 6f 66 20 65 | 71 75 61 6c 20 62 79 74 |uns of e|qual byt|
|00003f50| 65 73 20 00 00 06 00 02 | 00 00 00 a1 00 64 00 10 |es .....|.....d..|
|00003f60| 4f 4e 4c 4e 00 64 01 49 | 00 85 01 4b 00 91 01 f8 |ONLN.d.I|...K....|
|00003f70| 00 29 d6 22 77 69 74 68 | 69 6e 20 65 61 63 68 20 |.)."with|in each |
|00003f80| 73 63 61 6e 20 6c 69 6e | 65 2e 20 20 54 68 65 20 |scan lin|e. The |
|00003f90| 62 69 74 6d 61 70 00 06 | 00 01 00 00 00 a1 00 64 |bitmap..|.......d|
|00003fa0| 00 10 4f 4e 4c 4e 00 64 | 01 6c 00 92 00 36 00 9e |..ONLN.d|.l...6..|
|00003fb0| 01 37 00 28 00 9b 00 36 | 34 70 61 72 74 20 6f 66 |.7.(...6|4part of|
|00003fc0| 20 61 20 4d 61 63 50 61 | 69 6e 74 20 64 6f 63 75 | a MacPa|int docu|
|00003fd0| 6d 65 6e 74 20 69 73 20 | 73 69 6d 70 6c 79 20 74 |ment is |simply t|
|00003fe0| 68 65 20 6f 75 74 70 75 | 74 20 6f 66 20 00 00 03 |he outpu|t of ...|
|00003ff0| 00 16 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 a0 |.....d..|ONLN.d..|
|00004000| 00 91 01 37 00 9d 01 76 | 00 28 00 9b 01 37 09 5f |...7...v|.(...7._|
|00004010| 50 61 63 6b 42 69 74 73 | 00 03 00 14 00 a1 00 64 |PackBits|.......d|
|00004020| 00 10 4f 4e 4c 4e 00 64 | 01 a9 00 92 01 76 00 9e |..ONLN.d|.....v..|
|00004030| 01 99 00 29 3f 08 20 63 | 61 6c 6c 65 64 20 00 06 |...)?. c|alled ..|
|00004040| 00 02 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00004050| 01 b1 00 92 01 99 00 9e | 01 f8 00 29 23 12 37 32 |........|...)#.72|
|00004060| 30 20 74 69 6d 65 73 2c | 20 77 69 74 68 20 37 32 |0 times,| with 72|
|00004070| 00 06 00 00 00 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |........|.d..ONLN|
|00004080| 00 64 01 c4 00 9e 00 36 | 00 aa 00 aa 00 28 00 a7 |.d.....6|.....(..|
|00004090| 00 36 19 62 79 74 65 73 | 20 6f 66 20 69 6e 70 75 |.6.bytes| of inpu|
|000040a0| 74 20 65 61 63 68 20 74 | 69 6d 65 2e 00 06 00 01 |t each t|ime.....|
|000040b0| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 de |.....d..|ONLN.d..|
|000040c0| 00 b6 00 36 00 c2 01 a5 | 00 2a 18 4a 54 6f 20 64 |...6....|.*.JTo d|
|000040d0| 65 74 65 72 6d 69 6e 65 | 20 74 68 65 20 6d 61 78 |etermine| the max|
|000040e0| 69 6d 75 6d 20 73 69 7a | 65 20 6f 66 20 61 20 4d |imum siz|e of a M|
|000040f0| 61 63 50 61 69 6e 74 20 | 66 69 6c 65 2c 20 69 74 |acPaint |file, it|
|00004100| 20 69 73 20 77 6f 72 74 | 68 20 6e 6f 74 69 6e 67 | is wort|h noting|
|00004110| 20 77 68 61 74 20 00 04 | 02 00 00 06 00 02 00 00 | what ..|........|
|00004120| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 02 28 00 b6 |...d..ON|LN.d.(..|
|00004130| 01 a5 00 c2 01 f8 00 28 | 00 bf 01 a5 10 49 6e 73 |.......(|.....Ins|
|00004140| 69 64 65 20 4d 61 63 69 | 6e 74 6f 73 68 00 00 04 |ide Maci|ntosh...|
|00004150| 00 00 00 06 00 00 00 00 | 00 a1 00 64 00 10 4f 4e |........|...d..ON|
|00004160| 4c 4e 00 64 02 39 00 c3 | 00 36 00 cf 00 6b 00 28 |LN.d.9..|.6...k.(|
|00004170| 00 cc 00 36 0b 73 61 79 | 73 20 61 62 6f 75 74 20 |...6.say|s about |
|00004180| 00 03 00 16 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00004190| 02 44 00 c2 00 6b 00 ce | 00 aa 00 29 35 09 5f 50 |.D...k..|...)5._P|
|000041a0| 61 63 6b 42 69 74 73 00 | 00 03 00 14 00 a1 00 64 |ackBits.|.......d|
|000041b0| 00 10 4f 4e 4c 4e 00 64 | 02 4d 00 c3 00 aa 00 cf |..ONLN.d|.M......|
|000041c0| 00 ad 00 29 3f 01 3a 00 | 00 06 00 02 00 00 00 a1 |...)?.:.|........|
|000041d0| 00 64 00 10 4f 4e 4c 4e | 00 64 02 4f 00 dc 00 36 |.d..ONLN|.d.O...6|
|000041e0| 00 e8 00 72 00 28 00 e5 | 00 36 0b d2 54 68 65 20 |...r.(..|.6..The |
|000041f0| 77 6f 72 73 74 20 00 06 | 00 03 00 00 00 a1 00 64 |worst ..|.......d|
|00004200| 00 10 4f 4e 4c 4e 00 64 | 02 5a 00 dc 00 72 00 e8 |..ONLN.d|.Z...r..|
|00004210| 00 e1 00 29 3c 13 63 61 | 73 65 20 77 6f 75 6c 64 |...)<.ca|se would|
|00004220| 20 62 65 20 77 68 65 6e | 20 00 00 03 00 16 00 a1 | be when| .......|
|00004230| 00 64 00 10 4f 4e 4c 4e | 00 64 02 6d 00 db 00 e1 |.d..ONLN|.d.m....|
|00004240| 00 e7 01 20 00 29 6f 09 | 5f 50 61 63 6b 42 69 74 |... .)o.|_PackBit|
|00004250| 73 00 00 03 00 14 00 a1 | 00 64 00 10 4f 4e 4c 4e |s.......|.d..ONLN|
|00004260| 00 64 02 76 00 dc 01 20 | 00 e8 01 f8 00 29 3f 27 |.d.v... |.....)?'|
|00004270| 20 61 64 64 73 20 6f 6e | 65 20 62 79 74 65 20 74 | adds on|e byte t|
|00004280| 6f 20 74 68 65 20 72 6f | 77 20 6f 66 20 62 79 74 |o the ro|w of byt|
|00004290| 65 73 20 77 68 65 6e 00 | 00 06 00 00 00 00 00 a1 |es when.|........|
|000042a0| 00 64 00 10 4f 4e 4c 4e | 00 64 02 9e 00 e8 00 36 |.d..ONLN|.d.....6|
|000042b0| 00 f4 00 64 00 28 00 f1 | 00 36 09 70 61 63 6b 69 |...d.(..|.6.packi|
|000042c0| 6e 67 2e d3 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |ng.....d|..ONLN.d|
|000042d0| 02 a8 01 00 00 36 01 0c | 01 04 00 2a 18 2e 49 66 |.....6..|...*..If|
|000042e0| 20 77 65 20 69 6e 63 6c | 75 64 65 20 61 6e 20 65 | we incl|ude an e|
|000042f0| 78 74 72 61 20 35 31 32 | 20 62 79 74 65 73 20 66 |xtra 512| bytes f|
|00004300| 6f 72 20 74 68 65 20 66 | 69 6c 65 20 00 06 00 01 |or the f|ile ....|
|00004310| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 02 d6 |.....d..|ONLN.d..|
|00004320| 01 00 01 04 01 0c 01 f8 | 00 29 ce 31 68 65 61 64 |........|.).1head|
|00004330| 65 72 20 69 6e 66 6f 72 | 6d 61 74 69 6f 6e 20 74 |er infor|mation t|
|00004340| 6f 20 74 68 65 20 73 69 | 7a 65 20 6f 66 20 61 6e |o the si|ze of an|
|00004350| 20 75 6e 63 6f 6d 70 72 | 65 73 73 65 64 00 00 06 | uncompr|essed...|
|00004360| 00 00 00 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00004370| 03 08 01 0c 00 36 01 18 | 01 3a 00 28 01 15 00 36 |.....6..|.:.(...6|
|00004380| 36 62 69 74 6d 61 70 20 | 28 35 31 2c 38 34 30 29 |6bitmap |(51,840)|
|00004390| 2c 20 74 68 65 6e 20 74 | 68 65 20 74 6f 74 61 6c |, then t|he total|
|000043a0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 62 79 74 65 73 | number |of bytes|
|000043b0| 20 77 6f 75 6c 64 20 00 | 00 06 00 01 00 00 00 a1 | would .|........|
|000043c0| 00 64 00 10 4f 4e 4c 4e | 00 64 03 3e 01 0c 01 3a |.d..ONLN|.d.>...:|
|000043d0| 01 18 01 f8 00 28 01 15 | 01 3a 27 62 65 20 35 32 |.....(..|.:'be 52|
|000043e0| 2c 33 35 32 2e 20 20 49 | 66 20 77 65 20 74 61 6b |,352. I|f we tak|
|000043f0| 65 20 69 6e 74 6f 20 61 | 63 63 6f 75 6e 74 20 74 |e into a|ccount t|
|00004400| 68 65 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 03 66 |he...d..|ONLN.d.f|
|00004410| 01 18 00 36 01 24 00 fe | 00 28 01 21 00 36 2a 65 |...6.$..|.(.!.6*e|
|00004420| 78 74 72 61 20 37 32 30 | 20 d2 70 6f 74 65 6e 74 |xtra 720| .potent|
|00004430| 69 61 6c d3 20 62 79 74 | 65 73 20 28 6f 6e 65 20 |ial. byt|es (one |
|00004440| 66 6f 72 20 65 61 63 68 | 20 00 00 06 00 02 00 00 |for each| .......|
|00004450| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 03 90 01 18 |...d..ON|LN.d....|
|00004460| 00 fe 01 24 01 f8 00 29 | c8 31 72 6f 77 29 20 74 |...$...)|.1row) t|
|00004470| 6f 20 74 68 65 20 70 72 | 65 76 69 6f 75 73 20 74 |o the pr|evious t|
|00004480| 6f 74 61 6c 2c 20 74 68 | 65 20 6d 61 78 69 6d 75 |otal, th|e maximu|
|00004490| 6d 20 73 69 7a 65 20 6f | 66 20 61 00 00 06 00 00 |m size o|f a.....|
|000044a0| 00 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 03 c2 |.....d..|ONLN.d..|
|000044b0| 01 24 00 36 01 30 00 e5 | 00 28 01 2d 00 36 23 4d |.$.6.0..|.(.-.6#M|
|000044c0| 61 63 50 61 69 6e 74 20 | 66 69 6c 65 20 62 65 63 |acPaint |file bec|
|000044d0| 6f 6d 65 73 20 35 33 2c | 30 37 32 20 62 79 74 65 |omes 53,|072 byte|
|000044e0| 73 2e 00 04 01 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |s.......|.d..ONLN|
|000044f0| 00 64 03 e6 01 3c 00 36 | 01 48 00 91 00 2a 18 0e |.d...<.6|.H...*..|
|00004500| 52 65 61 64 69 6e 67 20 | 53 61 6d 70 6c 65 00 03 |Reading |Sample..|
|00004510| 00 16 00 04 00 00 00 0d | 00 09 00 a1 00 64 00 10 |........|.....d..|
|00004520| 4f 4e 4c 4e 00 64 03 f6 | 01 54 00 5a 01 5f 00 c3 |ONLN.d..|.T.Z._..|
|00004530| 00 2b 24 17 15 50 52 4f | 43 45 44 55 52 45 20 52 |.+$..PRO|CEDURE R|
|00004540| 65 61 64 4d 50 46 69 6c | 65 3b 00 a1 00 64 00 10 |eadMPFil|e;...d..|
|00004550| 4f 4e 4c 4e 00 64 04 0d | 01 5e 00 5a 01 69 01 bd |ONLN.d..|.^.Z.i..|
|00004560| 00 2a 0a 47 7b 20 54 68 | 69 73 20 69 73 20 61 20 |.*.G{ Th|is is a |
|00004570| 73 6d 61 6c 6c 20 65 78 | 61 6d 70 6c 65 20 70 72 |small ex|ample pr|
|00004580| 6f 63 65 64 75 72 65 20 | 77 72 69 74 74 65 6e 20 |ocedure |written |
|00004590| 69 6e 20 50 61 73 63 61 | 6c 20 74 68 61 74 20 64 |in Pasca|l that d|
|000045a0| 65 6d 6f 6e 73 74 72 61 | 74 65 73 00 00 a1 00 64 |emonstra|tes....d|
|000045b0| 00 10 4f 4e 4c 4e 00 64 | 04 56 01 68 00 5a 01 73 |..ONLN.d|.V.h.Z.s|
|000045c0| 01 b3 00 2a 0a 45 20 20 | 68 6f 77 20 74 6f 20 72 |...*.E |how to r|
|000045d0| 65 61 64 20 4d 61 63 50 | 61 69 6e 74 20 66 69 6c |ead MacP|aint fil|
|000045e0| 65 73 2e 20 41 73 20 61 | 20 66 69 6e 61 6c 20 73 |es. As a| final s|
|000045f0| 74 65 70 2c 20 69 74 20 | 74 61 6b 65 73 20 74 68 |tep, it |takes th|
|00004600| 65 20 64 61 74 61 20 74 | 68 61 74 00 00 a1 00 64 |e data t|hat....d|
|00004610| 00 10 4f 4e 4c 4e 00 64 | 04 9d 01 72 00 5a 01 7d |..ONLN.d|...r.Z.}|
|00004620| 01 9a 00 2a 0a 40 20 20 | 77 61 73 20 72 65 61 64 |...*.@ |was read|
|00004630| 20 61 6e 64 20 64 69 73 | 70 6c 61 79 73 20 69 74 | and dis|plays it|
|00004640| 20 6f 6e 20 74 68 65 20 | 73 63 72 65 65 6e 20 74 | on the |screen t|
|00004650| 6f 20 73 68 6f 77 20 74 | 68 61 74 20 69 74 20 77 |o show t|hat it w|
|00004660| 6f 72 6b 65 64 2e 00 a1 | 00 64 00 10 4f 4e 4c 4e |orked...|.d..ONLN|
|00004670| 00 64 04 df 01 7c 00 5a | 01 87 01 a9 00 2a 0a 43 |.d...|.Z|.....*.C|
|00004680| 20 20 43 61 76 65 61 74 | 3a 20 54 68 69 73 20 69 | Caveat|: This i|
|00004690| 73 20 6e 6f 74 20 69 6e | 74 65 6e 64 65 64 20 74 |s not in|tended t|
|000046a0| 6f 20 62 65 20 61 6e 20 | 65 78 61 6d 70 6c 65 20 |o be an |example |
|000046b0| 6f 66 20 67 6f 6f 64 20 | 70 72 6f 67 72 61 6d 6d |of good |programm|
|000046c0| 69 6e 67 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |ing....d|..ONLN.d|
|000046d0| 05 24 01 86 00 5a 01 91 | 01 c7 00 2a 0a 49 20 20 |.$...Z..|...*.I |
|000046e0| 70 72 61 63 74 69 63 65 | 2c 20 69 6e 20 74 68 61 |practice|, in tha|
|000046f0| 74 20 74 68 65 20 70 6f | 73 73 69 62 6c 65 20 65 |t the po|ssible e|
|00004700| 72 72 6f 72 73 20 6d 65 | 72 65 6c 79 20 63 61 75 |rrors me|rely cau|
|00004710| 73 65 20 74 68 65 20 70 | 72 6f 67 72 61 6d 20 74 |se the p|rogram t|
|00004720| 6f 20 65 78 69 74 2e 00 | 00 a1 00 64 00 10 4f 4e |o exit..|...d..ON|
|00004730| 4c 4e 00 64 05 6f 01 90 | 00 5a 01 9b 01 d6 00 2a |LN.d.o..|.Z.....*|
|00004740| 0a 4c 20 20 54 68 69 73 | 20 69 73 20 56 45 52 59 |.L This| is VERY|
|00004750| 20 75 6e 69 6e 66 6f 72 | 6d 61 74 69 76 65 2c 20 | uninfor|mative, |
|00004760| 61 6e 64 20 74 68 65 72 | 65 20 73 68 6f 75 6c 64 |and ther|e should|
|00004770| 20 62 65 20 73 6f 6d 65 | 20 73 6f 72 74 20 6f 66 | be some| sort of|
|00004780| 20 65 72 72 6f 72 20 68 | 61 6e 64 6c 65 72 00 a1 | error h|andler..|
|00004790| 00 64 00 10 4f 4e 4c 4e | 00 64 05 bd 01 9a 00 5a |.d..ONLN|.d.....Z|
|000047a0| 01 a5 01 c7 00 2a 0a 49 | 20 20 74 6f 20 65 78 70 |.....*.I| to exp|
|000047b0| 6c 61 69 6e 20 77 68 61 | 74 20 68 61 70 70 65 6e |lain wha|t happen|
|000047c0| 65 64 2e 20 46 6f 72 20 | 73 69 6d 70 6c 69 63 69 |ed. For |simplici|
|000047d0| 74 79 2c 20 61 6e 64 20 | 74 68 75 73 20 63 6c 61 |ty, and |thus cla|
|000047e0| 72 69 74 79 2c 20 74 68 | 6f 73 65 20 74 79 70 65 |rity, th|ose type|
|000047f0| 73 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 06 08 |s....d..|ONLN.d..|
|00004800| 01 a4 00 5a 01 af 01 b8 | 00 2a 0a 46 20 20 6f 66 |...Z....|.*.F of|
|00004810| 20 74 68 69 6e 67 73 20 | 77 65 72 65 20 64 65 6c | things |were del|
|00004820| 69 62 65 72 61 74 65 6c | 79 20 6e 6f 74 20 69 6e |iberatel|y not in|
|00004830| 63 6c 75 64 65 64 2e 20 | 54 68 69 73 20 65 78 61 |cluded. |This exa|
|00004840| 6d 70 6c 65 20 77 69 6c | 6c 20 6e 6f 74 20 77 6f |mple wil|l not wo|
|00004850| 72 6b 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 06 50 |rk...d..|ONLN.d.P|
|00004860| 01 ae 00 5a 01 b9 01 cc | 00 2a 0a 4a 20 20 6f 6e |...Z....|.*.J on|
|00004870| 20 61 20 31 32 38 4b 20 | 4d 61 63 69 6e 74 6f 73 | a 128K |Macintos|
|00004880| 68 2c 20 73 69 6e 63 65 | 20 6d 65 6d 6f 72 79 20 |h, since| memory |
|00004890| 61 6c 6c 6f 63 61 74 69 | 6f 6e 20 69 73 20 64 6f |allocati|on is do|
|000048a0| 6e 65 20 74 6f 6f 20 73 | 69 6d 70 6c 69 73 74 69 |ne too s|implisti|
|000048b0| 63 61 6c 6c 79 2e 00 a1 | 00 64 00 10 4f 4e 4c 4e |cally...|.d..ONLN|
|000048c0| 00 64 06 9c 01 b8 00 5a | 01 c3 00 5f 00 2a 0a 01 |.d.....Z|..._.*..|
|000048d0| 7d 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 06 9f |}....d..|ONLN.d..|
|000048e0| 01 cc 00 5a 01 d7 00 73 | 00 2a 14 05 43 4f 4e 53 |...Z...s|.*..CONS|
|000048f0| 54 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 06 a7 |T....d..|ONLN.d..|
|00004900| 01 d6 00 7e 01 e1 00 d8 | 00 2b 24 0a 12 44 65 66 |...~....|.+$..Def|
|00004910| 61 75 6c 74 56 6f 6c 75 | 6d 65 20 3d 20 30 3b 00 |aultVolu|me = 0;.|
|00004920| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 06 bc 01 e0 |...d..ON|LN.d....|
|00004930| 00 7e 01 eb 00 d3 00 2a | 0a 11 48 65 61 64 65 72 |.~.....*|..Header|
|00004940| 53 69 7a 65 20 3d 20 35 | 31 32 3b 00 00 a1 00 64 |Size = 5|12;....d|
|00004950| 00 10 4f 4e 4c 4e 00 64 | 06 cf 01 e0 01 0e 01 eb |..ONLN.d|........|
|00004960| 01 c2 00 29 90 24 7b 20 | 73 69 7a 65 20 6f 66 20 |...).${ |size of |
|00004970| 4d 61 63 50 61 69 6e 74 | 20 68 65 61 64 65 72 20 |MacPaint| header |
|00004980| 69 6e 20 62 79 74 65 73 | 20 7d 00 a1 00 64 00 10 |in bytes| }...d..|
|00004990| 4f 4e 4c 4e 00 64 06 f7 | 01 ea 00 7e 01 f5 00 f6 |ONLN.d..|...~....|
|000049a0| 00 28 01 f2 00 7e 18 4d | 61 78 55 6e 50 61 63 6b |.(...~.M|axUnPack|
|000049b0| 65 64 53 69 7a 65 20 3d | 20 35 31 38 34 30 3b 00 |edSize =| 51840;.|
|000049c0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 07 10 01 ea |...d..ON|LN.d....|
|000049d0| 01 0e 01 f5 01 b8 00 29 | 90 22 7b 20 6d 61 78 69 |.......)|."{ maxi|
|000049e0| 6d 75 6d 20 4d 61 63 50 | 61 69 6e 74 20 73 69 7a |mum MacP|aint siz|
|000049f0| 65 20 69 6e 20 62 79 74 | 65 73 20 7d 00 a1 00 64 |e in byt|es }...d|
|00004a00| 00 10 4f 4e 4c 4e 00 64 | 07 39 01 f4 01 0e 01 ff |..ONLN.d|.9......|
|00004a10| 01 9f 00 2a 0a 1d 7b 20 | 37 32 30 20 6c 69 6e 65 |...*..{ |720 line|
|00004a20| 73 20 2a 20 37 32 20 62 | 79 74 65 73 2f 6c 69 6e |s * 72 b|ytes/lin|
|00004a30| 65 20 7d 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |e }....d|..ONLN.d|
|00004a40| 07 58 02 08 00 5a 02 13 | 00 69 00 28 02 10 00 5a |.X...Z..|.i.(...Z|
|00004a50| 03 56 41 52 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.VAR...d|..ONLN.d|
|00004a60| 07 5e 02 12 00 7e 02 1d | 00 a6 00 2b 24 0a 08 73 |.^...~..|...+$..s|
|00004a70| 72 63 50 74 72 3a 20 00 | 00 a1 00 64 00 10 4f 4e |rcPtr: .|...d..ON|
|00004a80| 4c 4e 00 64 07 67 02 12 | 00 c6 02 1d 00 da 00 29 |LN.d.g..|.......)|
|00004a90| 48 04 50 74 72 3b 00 a1 | 00 64 00 10 4f 4e 4c 4e |H.Ptr;..|.d..ONLN|
|00004aa0| 00 64 07 6e 02 1c 00 7e | 02 27 00 a6 00 28 02 24 |.d.n...~|.'...(.$|
|00004ab0| 00 7e 08 64 73 74 50 74 | 72 3a 20 00 00 a1 00 64 |.~.dstPt|r: ....d|
|00004ac0| 00 10 4f 4e 4c 4e 00 64 | 07 77 02 1c 00 c6 02 27 |..ONLN.d|.w.....'|
|00004ad0| 00 da 00 29 48 04 50 74 | 72 3b 00 a1 00 64 00 10 |...)H.Pt|r;...d..|
|00004ae0| 4f 4e 4c 4e 00 64 07 7e | 02 26 00 7e 02 31 00 b5 |ONLN.d.~|.&.~.1..|
|00004af0| 00 28 02 2e 00 7e 0b 73 | 61 76 65 44 73 74 50 74 |.(...~.s|aveDstPt|
|00004b00| 72 3a 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 07 8a |r:...d..|ONLN.d..|
|00004b10| 02 26 00 c6 02 31 00 da | 00 29 48 04 50 74 72 3b |.&...1..|.)H.Ptr;|
|00004b20| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 07 91 02 30 |...d..ON|LN.d...0|
|00004b30| 00 7e 02 3b 00 ba 00 28 | 02 38 00 7e 0c 6c 61 73 |.~.;...(|.8.~.las|
|00004b40| 74 44 65 73 74 50 74 72 | 3a 00 00 a1 00 64 00 10 |tDestPtr|:....d..|
|00004b50| 4f 4e 4c 4e 00 64 07 9e | 02 30 00 c6 02 3b 00 da |ONLN.d..|.0...;..|
|00004b60| 00 29 48 04 50 74 72 3b | 00 a1 00 64 00 10 4f 4e |.)H.Ptr;|...d..ON|
|00004b70| 4c 4e 00 64 07 a5 02 3a | 00 7e 02 45 00 ab 00 28 |LN.d...:|.~.E...(|
|00004b80| 02 42 00 7e 09 73 72 63 | 46 69 6c 65 3a 20 00 a1 |.B.~.src|File: ..|
|00004b90| 00 64 00 10 4f 4e 4c 4e | 00 64 07 af 02 3a 00 c6 |.d..ONLN|.d...:..|
|00004ba0| 02 45 00 ee 00 29 48 08 | 49 4e 54 45 47 45 52 3b |.E...)H.|INTEGER;|
|00004bb0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 07 ba 02 44 |...d..ON|LN.d...D|
|00004bc0| 00 7e 02 4f 00 ab 00 28 | 02 4c 00 7e 09 73 72 63 |.~.O...(|.L.~.src|
|00004bd0| 53 69 7a 65 3a 20 00 a1 | 00 64 00 10 4f 4e 4c 4e |Size: ..|.d..ONLN|
|00004be0| 00 64 07 c4 02 44 00 c6 | 02 4f 00 ee 00 29 48 08 |.d...D..|.O...)H.|
|00004bf0| 4c 4f 4e 47 49 4e 54 3b | 00 a1 00 64 00 10 4f 4e |LONGINT;|...d..ON|
|00004c00| 4c 4e 00 64 07 cf 02 4e | 00 7e 02 59 00 a6 00 28 |LN.d...N|.~.Y...(|
|00004c10| 02 56 00 7e 08 65 72 72 | 43 6f 64 65 3a 00 00 a1 |.V.~.err|Code:...|
|00004c20| 00 64 00 10 4f 4e 4c 4e | 00 64 07 d8 02 4e 00 c6 |.d..ONLN|.d...N..|
|00004c30| 02 59 00 ee 00 29 48 08 | 49 4e 54 45 47 45 52 3b |.Y...)H.|INTEGER;|
|00004c40| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 07 e3 02 58 |...d..ON|LN.d...X|
|00004c50| 00 7e 02 63 00 ab 00 28 | 02 60 00 7e 09 73 63 61 |.~.c...(|.`.~.sca|
|00004c60| 6e 4c 69 6e 65 3a 00 a1 | 00 64 00 10 4f 4e 4c 4e |nLine:..|.d..ONLN|
|00004c70| 00 64 07 ed 02 58 00 c6 | 02 63 00 ee 00 29 48 08 |.d...X..|.c...)H.|
|00004c80| 49 4e 54 45 47 45 52 3b | 00 a1 00 64 00 10 4f 4e |INTEGER;|...d..ON|
|00004c90| 4c 4e 00 64 07 f8 02 62 | 00 7e 02 6d 00 9c 00 28 |LN.d...b|.~.m...(|
|00004ca0| 02 6a 00 7e 06 61 50 6f | 72 74 3a 00 00 a1 00 64 |.j.~.aPo|rt:....d|
|00004cb0| 00 10 4f 4e 4c 4e 00 64 | 07 ff 02 62 00 a2 02 6d |..ONLN.d|...b...m|
|00004cc0| 00 cf 00 29 24 09 47 72 | 61 66 50 6f 72 74 3b 00 |...)$.Gr|afPort;.|
|00004cd0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 08 0b 02 6c |...d..ON|LN.d...l|
|00004ce0| 00 7e 02 77 00 b0 00 28 | 02 74 00 7e 0a 74 68 65 |.~.w...(|.t.~.the|
|00004cf0| 42 69 74 4d 61 70 3a 00 | 00 a1 00 64 00 10 4f 4e |BitMap:.|...d..ON|
|00004d00| 4c 4e 00 64 08 16 02 6c | 00 c6 02 77 00 e9 00 29 |LN.d...l|...w...)|
|00004d10| 48 07 42 69 74 4d 61 70 | 3b 00 00 a1 00 64 00 10 |H.BitMap|;....d..|
|00004d20| 4f 4e 4c 4e 00 64 08 1f | 02 80 00 5a 02 8b 00 73 |ONLN.d..|...Z...s|
|00004d30| 00 28 02 88 00 5a 05 42 | 45 47 49 4e 00 a1 00 64 |.(...Z.B|EGIN...d|
|00004d40| 00 10 4f 4e 4c 4e 00 64 | 08 27 02 8a 00 7e 02 95 |..ONLN.d|.'...~..|
|00004d50| 01 d7 00 2b 24 0a 45 65 | 72 72 43 6f 64 65 20 3a |...+$.Ee|rrCode :|
|00004d60| 3d 20 46 53 4f 70 65 6e | 28 27 4d 50 20 54 65 73 |= FSOpen|('MP Tes|
|00004d70| 74 46 69 6c 65 27 2c 20 | 44 65 66 61 75 6c 74 56 |tFile', |DefaultV|
|00004d80| 6f 6c 75 6d 65 2c 20 73 | 72 63 46 69 6c 65 29 3b |olume, s|rcFile);|
|00004d90| 20 7b 20 4f 70 65 6e 20 | 74 68 65 20 00 a1 00 64 | { Open |the ...d|
|00004da0| 00 10 4f 4e 4c 4e 00 64 | 08 75 02 94 01 7a 02 9f |..ONLN.d|.u...z..|
|00004db0| 01 cf 00 2b fc 0a 11 20 | 20 20 20 20 20 20 20 20 |...+... | |
|00004dc0| 20 66 69 6c 65 2e 20 7d | 00 a1 00 64 00 10 4f 4e | file. }|...d..ON|
|00004dd0| 4c 4e 00 64 08 89 02 9e | 00 7e 02 a9 01 37 00 28 |LN.d....|.~...7.(|
|00004de0| 02 a6 00 7e 25 49 46 20 | 65 72 72 43 6f 64 65 20 |...~%IF |errCode |
|00004df0| 3c 3e 20 6e 6f 45 72 72 | 20 54 48 45 4e 20 45 78 |<> noErr| THEN Ex|
|00004e00| 69 74 54 6f 53 68 65 6c | 6c 3b 00 20 02 bd 00 34 |itToShel|l;. ...4|
|00004e10| 02 bd 01 f9 00 03 00 14 | 00 0d 00 0a 00 28 02 d5 |........|.....(..|
|00004e20| 00 36 01 32 00 29 05 05 | 20 6f 66 20 35 00 00 28 |.6.2.)..| of 5..(|
|00004e30| 02 d5 01 64 20 50 54 20 | 32 34 20 2d 20 4d 61 63 |...d PT |24 - Mac|
|00004e40| 50 61 69 6e 74 20 44 6f | 63 75 6d 65 6e 74 20 46 |Paint Do|cument F|
|00004e50| 6f 72 6d 61 74 00 00 2b | 48 16 11 50 6c 61 74 66 |ormat..+|H..Platf|
|00004e60| 6f 72 6d 73 20 26 20 54 | 6f 6f 6c 73 00 ff 10 38 |orms & T|ools...8|
|00004e70| 00 00 00 00 03 48 02 52 | 00 11 02 ff 0c 00 ff ff |.....H.R|........|
|00004e80| ff ff 00 00 00 00 00 00 | 00 00 02 52 00 00 03 48 |........|...R...H|
|00004e90| 00 00 00 00 00 00 00 1e | 00 01 00 0a 00 00 00 00 |........|........|
|00004ea0| 03 48 02 52 00 2c 00 08 | 00 14 05 54 69 6d 65 73 |.H.R.,..|...Times|
|00004eb0| 00 03 00 14 00 0d 00 0a | 00 2e 00 04 00 00 00 00 |........|........|
|00004ec0| 00 2b 5a 2d 18 44 65 76 | 65 6c 6f 70 65 72 20 53 |.+Z-.Dev|eloper S|
|00004ed0| 75 70 70 6f 72 74 20 43 | 65 6e 74 65 72 00 00 28 |upport C|enter..(|
|00004ee0| 00 2d 01 f3 09 4a 75 6e | 65 20 31 39 38 39 00 20 |.-...Jun|e 1989. |
|00004ef0| 00 2f 00 58 00 2f 02 1d | 00 2c 00 0a 00 16 07 43 |./.X./..|.,.....C|
|00004f00| 6f 75 72 69 65 72 00 03 | 00 16 00 0d 00 09 00 a1 |ourier..|........|
|00004f10| 00 64 00 10 4f 4e 4c 4e | 00 64 00 00 00 3c 00 a2 |.d..ONLN|.d...<..|
|00004f20| 00 47 01 ab 00 28 00 44 | 00 a2 35 65 72 72 63 6f |.G...(.D|..5errco|
|00004f30| 64 65 20 3a 3d 20 53 65 | 74 46 50 6f 73 28 73 72 |de := Se|tFPos(sr|
|00004f40| 63 46 69 6c 65 2c 20 66 | 73 46 72 6f 6d 53 74 61 |cFile, f|sFromSta|
|00004f50| 72 74 2c 20 48 65 61 64 | 65 72 53 69 7a 65 29 3b |rt, Head|erSize);|
|00004f60| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 00 36 00 3c |...d..ON|LN.d.6.<|
|00004f70| 01 c2 00 47 01 f9 00 28 | 00 44 01 c2 0b 7b 20 53 |...G...(|.D...{ S|
|00004f80| 6b 69 70 20 74 68 65 20 | 00 a1 00 64 00 10 4f 4e |kip the |...d..ON|
|00004f90| 4c 4e 00 64 00 4b 00 46 | 01 c2 00 51 01 f4 00 2a |LN.d.K.F|...Q...*|
|00004fa0| 0a 0a 20 20 68 65 61 64 | 65 72 20 29 00 a1 00 64 |.. head|er )...d|
|00004fb0| 00 10 4f 4e 4c 4e 00 64 | 00 58 00 50 00 a2 00 5b |..ONLN.d|.X.P...[|
|00004fc0| 01 5b 00 28 00 58 00 a2 | 25 49 46 20 65 72 72 43 |.[.(.X..|%IF errC|
|00004fd0| 6f 64 65 20 3c 3e 20 6e | 6f 45 72 72 20 54 48 45 |ode <> n|oErr THE|
|00004fe0| 4e 20 45 78 69 74 54 6f | 53 68 65 6c 6c 3b 00 a1 |N ExitTo|Shell;..|
|00004ff0| 00 64 00 10 4f 4e 4c 4e | 00 64 00 80 00 64 00 a2 |.d..ONLN|.d...d..|
|00005000| 00 6f 01 56 00 2a 14 24 | 65 72 72 43 6f 64 65 20 |.o.V.*.$|errCode |
|00005010| 3a 3d 20 47 65 74 45 4f | 46 28 73 72 63 46 69 6c |:= GetEO|F(srcFil|
|00005020| 65 2c 20 73 72 63 53 69 | 7a 65 29 3b 00 a1 00 64 |e, srcSi|ze);...d|
|00005030| 00 10 4f 4e 4c 4e 00 64 | 00 a5 00 64 01 7a 00 6f |..ONLN.d|...d.z.o|
|00005040| 02 01 00 29 d8 1b 7b 20 | 46 69 6e 64 20 6f 75 74 |...)..{ |Find out|
|00005050| 20 68 6f 77 20 62 69 67 | 20 74 68 65 20 66 69 6c | how big| the fil|
|00005060| 65 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 00 c9 |e....d..|ONLN.d..|
|00005070| 00 6e 01 7a 00 79 01 9d | 00 2a 0a 07 20 20 69 73 |.n.z.y..|.*.. is|
|00005080| 2c 20 7d 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |, }....d|..ONLN.d|
|00005090| 00 d5 00 78 00 a2 00 83 | 01 5b 00 28 00 80 00 a2 |...x....|.[.(....|
|000050a0| 25 49 46 20 65 72 72 43 | 6f 64 65 20 3c 3e 20 6e |%IF errC|ode <> n|
|000050b0| 6f 45 72 72 20 54 48 45 | 4e 20 45 78 69 74 54 6f |oErr THE|N ExitTo|
|000050c0| 53 68 65 6c 6c 3b 00 a1 | 00 64 00 10 4f 4e 4c 4e |Shell;..|.d..ONLN|
|000050d0| 00 64 00 fb 00 78 01 7a | 00 83 01 f2 00 29 d8 18 |.d...x.z|.....)..|
|000050e0| 7b 20 61 6e 64 20 66 69 | 67 75 72 65 20 6f 75 74 |{ and fi|gure out|
|000050f0| 20 73 6f 75 72 63 65 20 | 00 a1 00 64 00 10 4f 4e | source |...d..ON|
|00005100| 4c 4e 00 64 01 1b 00 82 | 01 7a 00 8d 01 a7 00 2a |LN.d....|.z.....*|
|00005110| 0a 09 20 20 73 69 7a 65 | 2e 20 7d 00 00 a1 00 64 |.. size|. }....d|
|00005120| 00 10 4f 4e 4c 4e 00 64 | 01 27 00 96 00 a2 00 a1 |..ONLN.d|.'......|
|00005130| 01 47 00 28 00 9e 00 a2 | 21 73 72 63 53 69 7a 65 |.G.(....|!srcSize|
|00005140| 20 3a 3d 20 73 72 63 53 | 69 7a 65 20 2d 20 48 65 | := srcS|ize - He|
|00005150| 61 64 65 72 53 69 7a 65 | 20 3b 00 a1 00 64 00 10 |aderSize| ;...d..|
|00005160| 4f 4e 4c 4e 00 64 01 4a | 00 96 01 7a 00 a1 01 f7 |ONLN.d.J|...z....|
|00005170| 00 29 d8 19 7b 20 52 65 | 6d 6f 76 65 20 74 68 65 |.)..{ Re|move the|
|00005180| 20 68 65 61 64 65 72 20 | 66 72 6f 6d 20 00 00 a1 | header |from ...|
|00005190| 00 64 00 10 4f 4e 4c 4e | 00 64 01 6b 00 a0 01 7a |.d..ONLN|.d.k...z|
|000051a0| 00 ab 01 ac 00 2a 0a 0a | 20 20 63 6f 75 6e 74 2e |.....*..| count.|
|000051b0| 20 7d 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 78 | }...d..|ONLN.d.x|
|000051c0| 00 aa 00 a2 00 b5 01 24 | 00 28 00 b2 00 a2 1a 73 |.......$|.(.....s|
|000051d0| 72 63 50 74 72 20 3a 3d | 20 4e 65 77 50 74 72 28 |rcPtr :=| NewPtr(|
|000051e0| 73 72 63 53 69 7a 65 29 | 3b 00 00 a1 00 64 00 10 |srcSize)|;....d..|
|000051f0| 4f 4e 4c 4e 00 64 01 95 | 00 aa 01 7a 00 b5 01 ed |ONLN.d..|...z....|
|00005200| 00 29 d8 17 7b 20 4d 61 | 6b 65 20 62 75 66 66 65 |.)..{ Ma|ke buffe|
|00005210| 72 20 6a 75 73 74 20 74 | 68 65 20 00 00 a1 00 64 |r just t|he ....d|
|00005220| 00 10 4f 4e 4c 4e 00 64 | 01 b4 00 b4 01 7a 00 bf |..ONLN.d|.....z..|
|00005230| 01 c0 00 2a 0a 0e 20 20 | 72 69 67 68 74 20 73 69 |...*.. |right si|
|00005240| 7a 65 20 7d 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |ze }...d|..ONLN.d|
|00005250| 01 c5 00 be 00 a2 00 c9 | 01 47 00 28 00 c6 00 a2 |........|.G.(....|
|00005260| 21 49 46 20 73 72 63 50 | 74 72 20 3d 20 4e 49 4c |!IF srcP|tr = NIL|
|00005270| 20 54 48 45 4e 20 45 78 | 69 74 54 6f 53 68 65 6c | THEN Ex|itToShel|
|00005280| 6c 3b 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 01 ec |l;...d..|ONLN.d..|
|00005290| 00 d2 00 a2 00 dd 01 fb | 00 2a 14 45 65 72 72 43 |........|.*.EerrC|
|000052a0| 6f 64 65 20 3a 3d 20 46 | 53 52 65 61 64 28 73 72 |ode := F|SRead(sr|
|000052b0| 63 46 69 6c 65 2c 20 73 | 72 63 53 69 7a 65 2c 20 |cFile, s|rcSize, |
|000052c0| 73 72 63 50 74 72 29 3b | 20 7b 20 52 65 61 64 20 |srcPtr);| { Read |
|000052d0| 74 68 65 20 64 61 74 61 | 20 69 6e 74 6f 20 74 68 |the data| into th|
|000052e0| 65 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 02 3a |e....d..|ONLN.d.:|
|000052f0| 00 dc 01 7a 00 e7 01 bb | 00 2b d8 0a 0d 20 20 20 |...z....|.+... |
|00005300| 20 62 75 66 66 65 72 2e | 20 7d 00 a1 00 64 00 10 | buffer.| }...d..|
|00005310| 4f 4e 4c 4e 00 64 02 4a | 00 e6 00 a2 00 f1 01 5b |ONLN.d.J|.......[|
|00005320| 00 28 00 ee 00 a2 25 49 | 46 20 65 72 72 43 6f 64 |.(....%I|F errCod|
|00005330| 65 20 3c 3e 20 6e 6f 45 | 72 72 20 54 48 45 4e 20 |e <> noE|rr THEN |
|00005340| 45 78 69 74 54 6f 53 68 | 65 6c 6c 3b 00 a1 00 64 |ExitToSh|ell;...d|
|00005350| 00 10 4f 4e 4c 4e 00 64 | 02 70 00 e6 01 7a 00 f1 |..ONLN.d|.p...z..|
|00005360| 01 e8 00 29 d8 16 7b 20 | 46 69 6c 65 20 6d 61 72 |...)..{ |File mar|
|00005370| 6b 65 72 20 69 73 20 70 | 61 73 74 20 00 a1 00 64 |ker is p|ast ...d|
|00005380| 00 10 4f 4e 4c 4e 00 64 | 02 8e 00 f0 01 7a 00 fb |..ONLN.d|.....z..|
|00005390| 01 b1 00 2a 0a 0b 20 20 | 68 65 61 64 65 72 2e 20 |...*.. |header. |
|000053a0| 7d 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 02 9c |}....d..|ONLN.d..|
|000053b0| 01 04 00 a2 01 0f 01 2e | 00 28 01 0c 00 a2 1c 65 |........|.(.....e|
|000053c0| 72 72 43 6f 64 65 20 3a | 3d 20 46 53 43 6c 6f 73 |rrCode :|= FSClos|
|000053d0| 65 28 73 72 63 46 69 6c | 65 29 3b 00 00 a1 00 64 |e(srcFil|e);....d|
|000053e0| 00 10 4f 4e 4c 4e 00 64 | 02 ba 01 04 01 7a 01 0f |..ONLN.d|.....z..|
|000053f0| 01 f7 00 29 d8 19 7b 20 | 43 6c 6f 73 65 20 74 68 |...)..{ |Close th|
|00005400| 65 20 66 69 6c 65 20 77 | 65 20 6a 75 73 74 20 00 |e file w|e just .|
|00005410| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 02 db 01 0e |...d..ON|LN.d....|
|00005420| 01 7a 01 19 01 a7 00 2a | 0a 09 20 20 72 65 61 64 |.z.....*|.. read|
|00005430| 2e 20 7d 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |. }....d|..ONLN.d|
|00005440| 02 e7 01 18 00 a2 01 23 | 01 5b 00 28 01 20 00 a2 |.......#|.[.(. ..|
|00005450| 25 49 46 20 65 72 72 43 | 6f 64 65 20 3c 3e 20 6e |%IF errC|ode <> n|
|00005460| 6f 45 72 72 20 54 48 45 | 4e 20 45 78 69 74 54 6f |oErr THE|N ExitTo|
|00005470| 53 68 65 6c 6c 3b 00 a1 | 00 64 00 10 4f 4e 4c 4e |Shell;..|.d..ONLN|
|00005480| 00 64 03 0f 01 2c 00 a2 | 01 37 01 e7 00 2a 14 41 |.d...,..|.7...*.A|
|00005490| 7b 20 43 72 65 61 74 65 | 20 61 20 62 75 66 66 65 |{ Create| a buffe|
|000054a0| 72 20 74 68 61 74 20 77 | 69 6c 6c 20 62 65 20 75 |r that w|ill be u|
|000054b0| 73 65 64 20 66 6f 72 20 | 74 68 65 20 44 65 73 74 |sed for |the Dest|
|000054c0| 69 6e 61 74 69 6f 6e 20 | 42 69 74 4d 61 70 2e 20 |ination |BitMap. |
|000054d0| 7d 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 03 53 |}....d..|ONLN.d.S|
|000054e0| 01 36 00 a2 01 41 01 65 | 00 2a 0a 27 64 73 74 50 |.6...A.e|.*.'dstP|
|000054f0| 74 72 20 3a 3d 20 4e 65 | 77 50 74 72 43 6c 65 61 |tr := Ne|wPtrClea|
|00005500| 72 28 4d 61 78 55 6e 50 | 61 63 6b 65 64 53 69 7a |r(MaxUnP|ackedSiz|
|00005510| 65 29 3b 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |e);....d|..ONLN.d|
|00005520| 03 7b 01 36 01 7a 01 41 | 01 fc 00 29 d8 1a 7b 4d |.{.6.z.A|...)..{M|
|00005530| 50 57 20 6c 69 62 72 61 | 72 79 20 72 6f 75 74 69 |PW libra|ry routi|
|00005540| 6e 65 2c 20 73 65 65 20 | 00 a1 00 64 00 10 4f 4e |ne, see |...d..ON|
|00005550| 4c 4e 00 64 03 9d 01 40 | 01 7a 01 4b 01 a2 00 2a |LN.d...@|.z.K...*|
|00005560| 0a 08 20 54 4e 20 32 31 | 39 7d 00 a1 00 64 00 10 |.. TN 21|9}...d..|
|00005570| 4f 4e 4c 4e 00 64 03 a8 | 01 4a 00 a2 01 55 01 47 |ONLN.d..|.J...U.G|
|00005580| 00 28 01 52 00 a2 21 49 | 46 20 64 73 74 50 74 72 |.(.R..!I|F dstPtr|
|00005590| 20 3d 20 4e 49 4c 20 54 | 48 45 4e 20 45 78 69 74 | = NIL T|HEN Exit|
|000055a0| 54 6f 53 68 65 6c 6c 3b | 00 a1 00 64 00 10 4f 4e |ToShell;|...d..ON|
|000055b0| 4c 4e 00 64 03 cc 01 54 | 00 a2 01 5f 01 0b 00 2a |LN.d...T|..._...*|
|000055c0| 0a 15 73 61 76 65 44 73 | 74 50 74 72 20 3a 3d 20 |..saveDs|tPtr := |
|000055d0| 64 73 74 50 74 72 3b 00 | 00 a1 00 64 00 10 4f 4e |dstPtr;.|...d..ON|
|000055e0| 4c 4e 00 64 03 e4 01 68 | 00 a2 01 73 01 fb 00 2a |LN.d...h|...s...*|
|000055f0| 14 45 7b 20 55 6e 70 61 | 63 6b 20 65 61 63 68 20 |.E{ Unpa|ck each |
|00005600| 73 63 61 6e 20 6c 69 6e | 65 20 69 6e 74 6f 20 74 |scan lin|e into t|
|00005610| 68 65 20 62 75 66 66 65 | 72 2e 20 4e 6f 74 65 20 |he buffe|r. Note |
|00005620| 74 68 61 74 20 37 32 30 | 20 73 63 61 6e 20 6c 69 |that 720| scan li|
|00005630| 6e 65 73 20 61 72 65 00 | 00 a1 00 64 00 10 4f 4e |nes are.|...d..ON|
|00005640| 4c 4e 00 64 04 2c 01 72 | 00 a2 01 7d 01 e7 00 2a |LN.d.,.r|...}...*|
|00005650| 0a 41 20 20 67 75 61 72 | 61 6e 74 65 65 64 20 74 |.A guar|anteed t|
|00005660| 6f 20 62 65 20 69 6e 20 | 74 68 65 20 66 69 6c 65 |o be in |the file|
|00005670| 2e 20 28 54 68 65 79 20 | 6d 61 79 20 62 65 20 62 |. (They |may be b|
|00005680| 6c 61 6e 6b 20 6c 69 6e | 65 73 2e 29 20 49 6e 20 |lank lin|es.) In |
|00005690| 74 68 65 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |the....d|..ONLN.d|
|000056a0| 04 70 01 7c 00 a2 01 87 | 02 00 00 2a 0a 46 20 20 |.p.|....|...*.F |
|000056b0| 55 6e 50 61 63 6b 42 69 | 74 73 20 63 61 6c 6c 2c |UnPackBi|ts call,|
|000056c0| 20 74 68 65 20 37 32 20 | 69 73 20 74 68 65 20 63 | the 72 |is the c|
|000056d0| 6f 75 6e 74 20 6f 66 20 | 62 79 74 65 73 20 64 6f |ount of |bytes do|
|000056e0| 6e 65 20 77 68 65 6e 20 | 74 68 65 20 66 69 6c 65 |ne when |the file|
|000056f0| 20 77 61 73 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 | was...d|..ONLN.d|
|00005700| 04 b9 01 86 00 a2 01 91 | 01 f1 00 2a 0a 43 20 20 |........|...*.C |
|00005710| 63 72 65 61 74 65 64 2e | 20 20 4d 61 63 50 61 69 |created.| MacPai|
|00005720| 6e 74 20 64 6f 65 73 20 | 6f 6e 65 20 73 63 61 6e |nt does |one scan|
|00005730| 20 6c 69 6e 65 20 61 74 | 20 61 20 74 69 6d 65 20 | line at| a time |
|00005740| 77 68 65 6e 20 63 72 65 | 61 74 69 6e 67 20 74 68 |when cre|ating th|
|00005750| 65 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 05 00 |e....d..|ONLN.d..|
|00005760| 01 90 00 a2 01 9b 01 f6 | 00 2a 0a 44 20 20 66 69 |........|.*.D fi|
|00005770| 6c 65 2e 20 54 68 65 20 | 64 65 73 74 69 6e 61 74 |le. The |destinat|
|00005780| 69 6f 6e 20 70 6f 69 6e | 74 65 72 20 69 73 20 74 |ion poin|ter is t|
|00005790| 65 73 74 65 64 20 65 61 | 63 68 20 74 69 6d 65 20 |ested ea|ch time |
|000057a0| 74 68 72 6f 75 67 68 20 | 74 68 65 20 73 63 61 6e |through |the scan|
|000057b0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 05 48 01 9a |...d..ON|LN.d.H..|
|000057c0| 00 a2 01 a5 01 ec 00 2a | 0a 42 20 20 6c 6f 6f 70 |.......*|.B loop|
|000057d0| 2e 20 55 6e 50 61 63 6b | 42 69 74 73 20 73 68 6f |. UnPack|Bits sho|
|000057e0| 75 6c 64 20 69 6e 63 72 | 65 6d 65 6e 74 20 74 68 |uld incr|ement th|
|000057f0| 69 73 20 70 6f 69 6e 74 | 65 72 20 62 79 20 37 32 |is point|er by 72|
|00005800| 2c 20 62 75 74 20 69 6e | 20 74 68 65 00 a1 00 64 |, but in| the...d|
|00005810| 00 10 4f 4e 4c 4e 00 64 | 05 8e 01 a4 00 a2 01 af |..ONLN.d|........|
|00005820| 01 dd 00 2a 0a 3f 20 20 | 63 61 73 65 20 77 68 65 |...*.? |case whe|
|00005830| 72 65 20 74 68 65 20 70 | 61 63 6b 65 64 20 66 69 |re the p|acked fi|
|00005840| 6c 65 20 69 73 20 63 6f | 72 72 75 70 74 65 64 20 |le is co|rrupted |
|00005850| 55 6e 50 61 63 6b 42 69 | 74 73 20 6d 61 79 20 65 |UnPackBi|ts may e|
|00005860| 6e 64 20 75 70 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |nd up...|.d..ONLN|
|00005870| 00 64 05 d1 01 ae 00 a2 | 01 b9 01 d8 00 2a 0a 3e |.d......|.....*.>|
|00005880| 20 20 73 65 6e 64 69 6e | 67 20 62 69 74 73 20 69 | sendin|g bits i|
|00005890| 6e 74 6f 20 75 6e 63 68 | 61 72 74 65 64 20 74 65 |nto unch|arted te|
|000058a0| 72 72 69 74 6f 72 79 2e | 20 20 41 20 74 65 6d 70 |rritory.| A temp|
|000058b0| 6f 72 61 72 79 20 70 6f | 69 6e 74 65 72 20 00 a1 |orary po|inter ..|
|000058c0| 00 64 00 10 4f 4e 4c 4e | 00 64 06 12 01 b8 00 a2 |.d..ONLN|.d......|
|000058d0| 01 c3 01 8d 00 2a 0a 2f | 20 20 22 6c 61 73 74 44 |.....*./| "lastD|
|000058e0| 73 74 50 74 72 22 20 69 | 73 20 75 73 65 64 20 66 |stPtr" i|s used f|
|000058f0| 6f 72 20 74 65 73 74 69 | 6e 67 20 74 68 65 20 72 |or testi|ng the r|
|00005900| 65 73 75 6c 74 2e 7d 00 | 00 a1 00 64 00 10 4f 4e |esult.}.|...d..ON|
|00005910| 4c 4e 00 64 06 44 01 cc | 00 a2 01 d7 01 47 00 2a |LN.d.D..|.....G.*|
|00005920| 14 21 46 4f 52 20 73 63 | 61 6e 4c 69 6e 65 20 3a |.!FOR sc|anLine :|
|00005930| 3d 20 31 20 54 4f 20 37 | 32 30 20 44 4f 20 42 45 |= 1 TO 7|20 DO BE|
|00005940| 47 49 4e 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |GIN....d|..ONLN.d|
|00005950| 06 68 01 d6 00 a2 01 e1 | 01 24 00 2a 0a 1a 20 20 |.h......|.$.*.. |
|00005960| 20 20 20 6c 61 73 74 44 | 73 74 50 74 72 20 3a 3d | lastD|stPtr :=|
|00005970| 20 64 73 74 50 74 72 3b | 00 a1 00 64 00 10 4f 4e | dstPtr;|...d..ON|
|00005980| 4c 4e 00 64 06 85 01 e0 | 00 a2 01 eb 01 5b 00 2a |LN.d....|.....[.*|
|00005990| 0a 25 20 20 20 20 20 55 | 6e 50 61 63 6b 42 69 74 |.% U|nPackBit|
|000059a0| 73 28 73 72 63 50 74 72 | 2c 20 64 73 74 50 74 72 |s(srcPtr|, dstPtr|
|000059b0| 2c 20 37 32 29 3b 20 00 | 00 a1 00 64 00 10 4f 4e |, 72); .|...d..ON|
|000059c0| 4c 4e 00 64 06 ab 01 e0 | 01 7a 01 eb 01 ed 00 29 |LN.d....|.z.....)|
|000059d0| d8 17 7b 20 62 75 6d 70 | 73 20 62 6f 74 68 20 70 |..{ bump|s both p|
|000059e0| 6f 69 6e 74 65 72 73 20 | 7d 00 00 a1 00 64 00 10 |ointers |}....d..|
|000059f0| 4f 4e 4c 4e 00 64 06 c5 | 01 ea 00 a2 01 f5 01 dd |ONLN.d..|........|
|00005a00| 00 28 01 f2 00 a2 3f 20 | 20 20 20 20 49 46 20 4f |.(....? | IF O|
|00005a10| 52 44 34 28 6c 61 73 74 | 44 73 74 50 74 72 29 20 |RD4(last|DstPtr) |
|00005a20| 2b 20 37 32 20 3c 3e 20 | 4f 52 44 34 28 64 73 74 |+ 72 <> |ORD4(dst|
|00005a30| 50 74 72 29 20 54 48 45 | 4e 20 45 78 69 74 54 6f |Ptr) THE|N ExitTo|
|00005a40| 53 68 65 6c 6c 3b 00 a1 | 00 64 00 10 4f 4e 4c 4e |Shell;..|.d..ONLN|
|00005a50| 00 64 07 07 01 f4 00 a2 | 01 ff 00 b6 00 2a 0a 04 |.d......|.....*..|
|00005a60| 45 4e 44 3b 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |END;...d|..ONLN.d|
|00005a70| 07 0e 02 08 00 a2 02 13 | 01 fb 00 2a 14 45 7b 20 |........|...*.E{ |
|00005a80| 54 68 65 20 62 75 66 66 | 65 72 20 68 61 73 20 62 |The buff|er has b|
|00005a90| 65 65 6e 20 66 75 6c 6c | 79 20 75 6e 70 61 63 6b |een full|y unpack|
|00005aa0| 65 64 2e 20 43 72 65 61 | 74 65 20 61 20 70 6f 72 |ed. Crea|te a por|
|00005ab0| 74 20 74 68 61 74 20 77 | 65 20 63 61 6e 20 64 72 |t that w|e can dr|
|00005ac0| 61 77 20 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |aw ....d|..ONLN.d|
|00005ad0| 07 55 02 12 00 a2 02 1d | 01 ba 00 2a 0a 38 20 20 |.U......|...*.8 |
|00005ae0| 69 6e 74 6f 2e 20 59 6f | 75 20 73 68 6f 75 6c 64 |into. Yo|u should|
|00005af0| 20 73 61 76 65 20 61 6e | 64 20 72 65 73 74 6f 72 | save an|d restor|
|00005b00| 65 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 70 6f |e the cu|rrent po|
|00005b10| 72 74 2e 20 20 7d 00 a1 | 00 64 00 10 4f 4e 4c 4e |rt. }..|.d..ONLN|
|00005b20| 00 64 07 90 02 1c 00 a2 | 02 27 00 f7 00 2a 0a 11 |.d......|.'...*..|
|00005b30| 4f 70 65 6e 50 6f 72 74 | 28 40 61 50 6f 72 74 29 |OpenPort|(@aPort)|
|00005b40| 3b 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 07 a4 |;....d..|ONLN.d..|
|00005b50| 02 30 00 a2 02 3b 01 ec | 00 2a 14 42 7b 20 43 72 |.0...;..|.*.B{ Cr|
|00005b60| 65 61 74 65 20 61 20 42 | 69 74 4d 61 70 20 6f 75 |eate a B|itMap ou|
|00005b70| 74 20 6f 66 20 6f 75 72 | 20 73 61 76 65 44 73 74 |t of our| saveDst|
|00005b80| 50 74 72 20 74 68 61 74 | 20 63 61 6e 20 62 65 20 |Ptr that| can be |
|00005b90| 63 6f 70 69 65 64 20 74 | 6f 20 74 68 65 20 00 a1 |copied t|o the ..|
|00005ba0| 00 64 00 10 4f 4e 4c 4e | 00 64 07 e8 02 3a 00 a2 |.d..ONLN|.d...:..|
|00005bb0| 02 45 00 d9 00 2a 0a 0b | 20 20 73 63 72 65 65 6e |.E...*..| screen|
|00005bc0| 2e 20 7d 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |. }....d|..ONLN.d|
|00005bd0| 07 f6 02 44 00 a2 02 4f | 01 47 00 2a 0a 21 74 68 |...D...O|.G.*.!th|
|00005be0| 65 42 69 74 4d 61 70 2e | 62 61 73 65 41 64 64 72 |eBitMap.|baseAddr|
|00005bf0| 20 3a 3d 20 73 61 76 65 | 44 73 74 50 74 72 3b 00 | := save|DstPtr;.|
|00005c00| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 08 1a 02 4e |...d..ON|LN.d...N|
|00005c10| 00 a2 02 59 01 24 00 2a | 0a 1a 74 68 65 42 69 74 |...Y.$.*|..theBit|
|00005c20| 4d 61 70 2e 72 6f 77 42 | 79 74 65 73 20 3a 3d 20 |Map.rowB|ytes := |
|00005c30| 37 32 3b 20 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |72; ...d|..ONLN.d|
|00005c40| 08 36 02 4e 01 56 02 59 | 01 e7 00 29 b4 1d 7b 20 |.6.N.V.Y|...)..{ |
|00005c50| 77 69 64 74 68 20 6f 66 | 20 4d 61 63 50 61 69 6e |width of| MacPain|
|00005c60| 74 20 70 69 63 74 75 72 | 65 20 7d 00 00 a1 00 64 |t pictur|e }....d|
|00005c70| 00 10 4f 4e 4c 4e 00 64 | 08 56 02 58 00 a2 02 63 |..ONLN.d|.V.X...c|
|00005c80| 01 60 00 28 02 60 00 a2 | 26 53 65 74 50 74 28 74 |.`.(.`..|&SetPt(t|
|00005c90| 68 65 42 69 74 4d 61 70 | 2e 62 6f 75 6e 64 73 2e |heBitMap|.bounds.|
|00005ca0| 74 6f 70 4c 65 66 74 2c | 20 30 2c 20 30 29 3b 00 |topLeft,| 0, 0);.|
|00005cb0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 08 7f 02 62 |...d..ON|LN.d...b|
|00005cc0| 00 a2 02 6d 01 e2 00 2a | 0a 40 53 65 74 50 74 28 |...m...*|.@SetPt(|
|00005cd0| 74 68 65 42 69 74 4d 61 | 70 2e 62 6f 75 6e 64 73 |theBitMa|p.bounds|
|00005ce0| 2e 62 6f 74 52 69 67 68 | 74 2c 20 37 32 2a 38 2c |.botRigh|t, 72*8,|
|00005cf0| 20 37 32 30 29 3b 20 7b | 6d 61 78 69 6d 75 6d 20 | 720); {|maximum |
|00005d00| 72 65 63 74 61 6e 67 6c | 65 7d 00 a1 00 64 00 10 |rectangl|e}...d..|
|00005d10| 4f 4e 4c 4e 00 64 08 c2 | 02 76 00 a2 02 81 01 d3 |ONLN.d..|.v......|
|00005d20| 00 2a 14 3d 7b 20 4e 6f | 77 20 75 73 65 20 74 68 |.*.={ No|w use th|
|00005d30| 61 74 20 42 69 74 4d 61 | 70 20 61 6e 64 20 64 72 |at BitMa|p and dr|
|00005d40| 61 77 20 74 68 65 20 70 | 69 65 63 65 20 6f 66 20 |aw the p|iece of |
|00005d50| 69 74 20 74 6f 20 74 68 | 65 20 73 63 72 65 65 6e |it to th|e screen|
|00005d60| 2e 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 09 02 |.....d..|ONLN.d..|
|00005d70| 02 80 00 a2 02 8b 01 ce | 00 2a 0a 3c 20 20 4f 6e |........|.*.< On|
|00005d80| 6c 79 20 64 72 61 77 20 | 74 68 65 20 70 69 65 63 |ly draw |the piec|
|00005d90| 65 20 74 68 61 74 20 69 | 73 20 66 75 6c 6c 20 73 |e that i|s full s|
|00005da0| 63 72 65 65 6e 20 73 69 | 7a 65 20 28 70 6f 72 74 |creen si|ze (port|
|00005db0| 52 65 63 74 29 2e 20 7d | 00 a1 00 64 00 10 4f 4e |Rect). }|...d..ON|
|00005dc0| 4c 4e 00 64 09 41 02 8a | 00 a2 02 95 01 a1 00 2a |LN.d.A..|.......*|
|00005dd0| 0a 33 43 6f 70 79 42 69 | 74 73 28 74 68 65 42 69 |.3CopyBi|ts(theBi|
|00005de0| 74 4d 61 70 2c 20 61 50 | 6f 72 74 2e 70 6f 72 74 |tMap, aP|ort.port|
|00005df0| 42 69 74 73 2c 20 61 50 | 6f 72 74 2e 70 6f 72 74 |Bits, aP|ort.port|
|00005e00| 52 65 63 74 2c 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |Rect,...|.d..ONLN|
|00005e10| 00 64 09 78 02 94 00 c6 | 02 9f 01 5c 00 2b 24 0a |.d.x....|...\.+$.|
|00005e20| 1e 61 50 6f 72 74 2e 70 | 6f 72 74 52 65 63 74 2c |.aPort.p|ortRect,|
|00005e30| 20 73 72 63 43 6f 70 79 | 2c 20 4e 49 4c 29 3b 00 | srcCopy|, NIL);.|
|00005e40| 00 20 02 bd 00 58 02 bd | 02 1d 00 03 00 14 00 0d |. ...X..|........|
|00005e50| 00 0a 00 28 02 d5 00 5a | 20 50 54 20 32 34 20 2d |...(...Z| PT 24 -|
|00005e60| 20 4d 61 63 50 61 69 6e | 74 20 44 6f 63 75 6d 65 | MacPain|t Docume|
|00005e70| 6e 74 20 46 6f 72 6d 61 | 74 00 00 28 02 d5 02 04 |nt Forma|t..(....|
|00005e80| 01 33 00 29 05 05 20 6f | 66 20 35 00 00 28 02 eb |.3.).. o|f 5..(..|
|00005e90| 00 5a 11 50 6c 61 74 66 | 6f 72 6d 73 20 26 20 54 |.Z.Platf|orms & T|
|00005ea0| 6f 6f 6c 73 00 ff 0f 50 | 00 00 00 00 03 48 02 52 |ools...P|.....H.R|
|00005eb0| 00 11 02 ff 0c 00 ff ff | ff ff 00 00 00 00 00 00 |........|........|
|00005ec0| 00 00 02 52 00 00 03 48 | 00 00 00 00 00 00 00 1e |...R...H|........|
|00005ed0| 00 01 00 0a 00 00 00 00 | 03 48 02 52 00 2c 00 08 |........|.H.R.,..|
|00005ee0| 00 14 05 54 69 6d 65 73 | 00 03 00 14 00 0d 00 0a |...Times|........|
|00005ef0| 00 2e 00 04 00 00 00 00 | 00 2b 36 2d 19 4d 61 63 |........|.+6-.Mac|
|00005f00| 69 6e 74 6f 73 68 20 54 | 65 63 68 6e 69 63 61 6c |intosh T|echnical|
|00005f10| 20 4e 6f 74 65 73 00 20 | 00 2f 00 34 00 2f 01 f9 | Notes. |./.4./..|
|00005f20| 00 2c 00 0a 00 16 07 43 | 6f 75 72 69 65 72 00 03 |.,.....C|ourier..|
|00005f30| 00 16 00 0d 00 09 00 a1 | 00 64 00 10 4f 4e 4c 4e |........|.d..ONLN|
|00005f40| 00 64 00 00 00 46 00 7e | 00 51 01 c8 00 2b 48 21 |.d...F.~|.Q...+H!|
|00005f50| 42 7b 20 57 65 20 6e 65 | 65 64 20 74 6f 20 64 69 |B{ We ne|ed to di|
|00005f60| 73 70 6f 73 65 20 6f 66 | 20 74 68 65 20 6d 65 6d |spose of| the mem|
|00005f70| 6f 72 79 20 77 65 d5 76 | 65 20 61 6c 6c 6f 63 61 |ory we.v|e alloca|
|00005f80| 74 65 64 2e 20 20 59 6f | 75 20 77 6f 75 6c 64 20 |ted. Yo|u would |
|00005f90| 6e 6f 74 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |not....d|..ONLN.d|
|00005fa0| 00 45 00 50 00 7e 00 5b | 01 9b 00 2a 0a 39 20 20 |.E.P.~.[|...*.9 |
|00005fb0| 64 69 73 70 6f 73 65 20 | 6f 66 20 74 68 65 20 64 |dispose |of the d|
|00005fc0| 65 73 74 50 74 72 20 69 | 66 20 79 6f 75 20 77 69 |estPtr i|f you wi|
|00005fd0| 73 68 20 74 6f 20 65 64 | 69 74 20 74 68 65 20 64 |sh to ed|it the d|
|00005fe0| 61 74 61 2e 20 20 7d 00 | 00 a1 00 64 00 10 4f 4e |ata. }.|...d..ON|
|00005ff0| 4c 4e 00 64 00 81 00 5a | 00 7e 00 65 00 d8 00 2a |LN.d...Z|.~.e...*|
|00006000| 0a 12 44 69 73 70 6f 73 | 50 74 72 28 73 72 63 50 |..Dispos|Ptr(srcP|
|00006010| 74 72 29 3b 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |tr);...d|..ONLN.d|
|00006020| 00 94 00 5a 00 ea 00 65 | 01 8a 00 29 6c 20 7b 20 |...Z...e|...)l { |
|00006030| 64 69 73 70 6f 73 65 20 | 6f 66 20 74 68 65 20 73 |dispose |of the s|
|00006040| 6f 75 72 63 65 20 62 75 | 66 66 65 72 20 7d 00 a1 |ource bu|ffer }..|
|00006050| 00 64 00 10 4f 4e 4c 4e | 00 64 00 b7 00 64 00 7e |.d..ONLN|.d...d.~|
|00006060| 00 6f 00 d8 00 28 00 6c | 00 7e 12 44 69 73 70 6f |.o...(.l|.~.Dispo|
|00006070| 73 50 74 72 28 64 73 74 | 50 74 72 29 3b 00 00 a1 |sPtr(dst|Ptr);...|
|00006080| 00 64 00 10 4f 4e 4c 4e | 00 64 00 ca 00 64 00 ea |.d..ONLN|.d...d..|
|00006090| 00 6f 01 a3 00 29 6c 25 | 7b 20 64 69 73 70 6f 73 |.o...)l%|{ dispos|
|000060a0| 65 20 6f 66 20 74 68 65 | 20 64 65 73 74 69 6e 61 |e of the| destina|
|000060b0| 74 69 6f 6e 20 62 75 66 | 66 65 72 20 7d 00 00 a1 |tion buf|fer }...|
|000060c0| 00 64 00 10 4f 4e 4c 4e | 00 64 00 f1 00 6e 00 5a |.d..ONLN|.d...n.Z|
|000060d0| 00 79 00 6e 00 28 00 76 | 00 5a 04 45 4e 44 3b 00 |.y.n.(.v|.Z.END;.|
|000060e0| 00 03 00 14 00 04 01 00 | 00 0d 00 0c 00 a1 00 64 |........|.......d|
|000060f0| 00 10 4f 4e 4c 4e 00 64 | 00 f6 00 84 00 36 00 90 |..ONLN.d|.....6..|
|00006100| 00 8e 00 28 00 8d 00 36 | 0e 57 72 69 74 69 6e 67 |...(...6|.Writing|
|00006110| 20 53 61 6d 70 6c 65 00 | 00 03 00 16 00 04 00 00 | Sample.|........|
|00006120| 00 0d 00 09 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |.......d|..ONLN.d|
|00006130| 01 06 00 9c 00 5a 00 a7 | 00 c8 00 2b 24 17 16 50 |.....Z..|...+$..P|
|00006140| 52 4f 43 45 44 55 52 45 | 20 57 72 69 74 65 4d 50 |ROCEDURE| WriteMP|
|00006150| 46 69 6c 65 3b 00 00 a1 | 00 64 00 10 4f 4e 4c 4e |File;...|.d..ONLN|
|00006160| 00 64 01 1e 00 a6 00 5a | 00 b1 01 d1 00 2a 0a 4b |.d.....Z|.....*.K|
|00006170| 7b 20 54 68 69 73 20 69 | 73 20 61 20 73 6d 61 6c |{ This i|s a smal|
|00006180| 6c 20 65 78 61 6d 70 6c | 65 20 70 72 6f 63 65 64 |l exampl|e proced|
|00006190| 75 72 65 20 77 72 69 74 | 74 65 6e 20 69 6e 20 50 |ure writ|ten in P|
|000061a0| 61 73 63 61 6c 20 74 68 | 61 74 20 64 65 6d 6f 6e |ascal th|at demon|
|000061b0| 73 74 72 61 74 65 73 20 | 68 6f 77 00 00 a1 00 64 |strates |how....d|
|000061c0| 00 10 4f 4e 4c 4e 00 64 | 01 6c 00 b0 00 5a 00 bb |..ONLN.d|.l...Z..|
|000061d0| 01 c7 00 2a 0a 49 20 20 | 74 6f 20 77 72 69 74 65 |...*.I |to write|
|000061e0| 20 4d 61 63 50 61 69 6e | 74 20 66 69 6c 65 73 2e | MacPain|t files.|
|000061f0| 20 49 74 20 77 69 6c 6c | 20 75 73 65 20 74 68 65 | It will| use the|
|00006200| 20 73 63 72 65 65 6e 20 | 61 73 20 61 20 68 61 6e | screen |as a han|
|00006210| 64 79 20 42 69 74 4d 61 | 70 20 74 6f 20 62 65 00 |dy BitMa|p to be.|
|00006220| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 01 b7 00 ba |...d..ON|LN.d....|
|00006230| 00 5a 00 c5 00 be 00 2a | 0a 14 20 20 77 72 69 74 |.Z.....*|.. writ|
|00006240| 74 65 6e 20 74 6f 20 61 | 20 66 69 6c 65 2e 00 a1 |ten to a| file...|
|00006250| 00 64 00 10 4f 4e 4c 4e | 00 64 01 cd 00 c4 00 5a |.d..ONLN|.d.....Z|
|00006260| 00 cf 00 5f 00 2a 0a 01 | 7d 00 00 a1 00 64 00 10 |..._.*..|}....d..|
|00006270| 4f 4e 4c 4e 00 64 01 d2 | 00 d8 00 5a 00 e3 00 73 |ONLN.d..|...Z...s|
|00006280| 00 2a 14 05 43 4f 4e 53 | 54 00 00 a1 00 64 00 10 |.*..CONS|T....d..|
|00006290| 4f 4e 4c 4e 00 64 01 da | 00 e2 00 7e 00 ed 00 d8 |ONLN.d..|...~....|
|000062a0| 00 2b 24 0a 12 44 65 66 | 61 75 6c 74 56 6f 6c 75 |.+$..Def|aultVolu|
|000062b0| 6d 65 20 3d 20 30 3b 00 | 00 a1 00 64 00 10 4f 4e |me = 0;.|...d..ON|
|000062c0| 4c 4e 00 64 01 ef 00 ec | 00 7e 00 f7 00 d3 00 2a |LN.d....|.~.....*|
|000062d0| 0a 11 48 65 61 64 65 72 | 53 69 7a 65 20 3d 20 35 |..Header|Size = 5|
|000062e0| 31 32 3b 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |12;....d|..ONLN.d|
|000062f0| 02 01 00 ec 00 ea 00 f7 | 01 9e 00 29 6c 24 7b 20 |........|...)l${ |
|00006300| 73 69 7a 65 20 6f 66 20 | 4d 61 63 50 61 69 6e 74 |size of |MacPaint|
|00006310| 20 68 65 61 64 65 72 20 | 69 6e 20 62 79 74 65 73 | header |in bytes|
|00006320| 20 7d 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 02 29 | }...d..|ONLN.d.)|
|00006330| 00 f6 00 7e 01 01 00 e2 | 00 28 00 fe 00 7e 14 4d |...~....|.(...~.M|
|00006340| 61 78 46 69 6c 65 53 69 | 7a 65 20 3d 20 35 33 30 |axFileSi|ze = 530|
|00006350| 37 32 3b 00 00 a1 00 64 | 00 10 4f 4e 4c 4e 00 64 |72;....d|..ONLN.d|
|00006360| 02 3e 00 f6 00 ea 01 01 | 01 85 00 29 6c 1f 7b 20 |.>......|...)l.{ |
|00006370| 6d 61 78 69 6d 75 6d 20 | 4d 61 63 50 61 69 6e 74 |maximum |MacPaint|
|00006380| 20 66 69 6c 65 20 73 69 | 7a 65 2e 20 7d 00 00 a1 | file si|ze. }...|
|00006390| 00 64 00 10 4f 4e 4c 4e | 00 64 02 5f 01 0a 00 5a |.d..ONLN|.d._...Z|
|000063a0| 01 15 00 69 00 28 01 12 | 00 5a 03 56 41 52 00 a1 |...i.(..|.Z.VAR..|
|000063b0| 00 64 00 10 4f 4e 4c 4e | 00 64 02 65 01 14 00 7e |.d..ONLN|.d.e...~|
|000063c0| 01 1f 00 a6 00 2b 24 0a | 08 73 72 63 50 74 72 3a |.....+$.|.srcPtr:|
|000063d0| 20 00 00 a1 00 64 00 10 | 4f 4e 4c 4e 00 64 02 6e | ....d..|ONLN.d.n|
|000063e0| 01 14 00 c6 01 1f 00 da | 00 29 48 04 50 74 72 3b |........|.)H.Ptr;|
|000063f0| 00 a1 00 64 00 10 4f 4e | 4c 4e 00 64 02 75 01 1e |...d..ON|LN.d.u..|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.